public static VerifiableProperties getVerifiableProperties(String[] args) throws IOException {
    OptionParser parser = new OptionParser();
    ArgumentAcceptingOptionSpec<String> propsFileOpt = parser.accepts("propsFile", "Properties file path")
        .withRequiredArg()
        .describedAs("propsFile")
        .ofType(String.class);

    OptionSet options = parser.parse(args);
    String propsFilePath = options.valueOf(propsFileOpt);
    if (propsFilePath == null) {
      parser.printHelpOn(System.err);
      throw new IllegalArgumentException("Missing required arg: propsFile");
    } else {
      Properties properties = Utils.loadProps(propsFilePath);
      addClusterMapProperties(properties);
      return new VerifiableProperties(properties);
    }
  }
Fetches the properties from Property file and generates the {@link VerifiableProperties}
@param args String array containing the arguments passed in
@return the {@link VerifiableProperties} generated from the properties in the property file
@throws IOException
ambry-tools/src/main/java/com/github/ambry/tools/util/ToolUtils.java