package folioxml.command;

import org.apache.commons.cli.*;

public class Main {

	
	public static Options getOptions(){
		Options options = new Options();
		options.addOption("type", true, "xml for raw xml, xhtml for xhtml, and simple-xhtml for simplified");
		options.addOption("exportfolder", true, " A subfolder to export the files to");
		return options;
	}
	/**
	 * @param args
	 */
	public static void main(String[] args) {
	    // create the parser
	    CommandLineParser parser = new PosixParser();
	    try {
	        // parse the command line arguments
	        CommandLine line = parser.parse( getOptions(), args );
	    //    line.getArgs()
	    }
	    catch( ParseException exp ) {
	        // oops, something went wrong
	        System.err.println( "Parsing failed.  Reason: " + exp.getMessage() );
	    }

	}

}

package folioxml.command;

import folioxml.config.InfobaseSet;
import folioxml.config.TestConfig;
import folioxml.config.YamlInfobaseSet;
import folioxml.core.InvalidMarkupException;
import folioxml.export.ExportRunner;
import org.apache.commons.cli.*;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.nio.file.Paths;
import java.util.Map;

public class Main {

	
	public static Options getOptions(){
		Options options = new Options();
		//yaml file
		//which configuration
		//inventory, index, or export

        Option config = new Option("config", true, "Path to yaml configuration");
        config.setRequired(true);
        Option export = new Option("export", true, "Name of config set to export");
        export.setRequired(true);

        options.addOption(config);
        options.addOption(export);

		return options;
	}
	/**
	 * @param args
	 */
    public static void main(String[] args) throws IOException {
        run(args);
    }
	public static int run(String[] args) throws IOException {
	    // create the parser
	    CommandLineParser parser = new PosixParser();
	    try {
	        // parse the command line arguments
	        CommandLine line = parser.parse(getOptions(), args);

            String configPath = line.getOptionValue("config");
            String configName = line.getOptionValue("export");


            String fullConfigPath = Paths.get(configPath).toFile().getCanonicalPath();
            if (!Paths.get(fullConfigPath).toFile().exists()){
                System.err.println( "Failed to locate yaml file " +fullConfigPath);
                return 2;
            }

            InputStream privateYaml =  new FileInputStream(fullConfigPath);
            String workingDir = new File(".").getCanonicalPath();
            Map<String,InfobaseSet> configs = YamlInfobaseSet.parseYaml(workingDir, privateYaml);

            if (!configs.containsKey(configName)){
                System.err.println("The yaml file does not contain a configuration '" + configName + "'.");
                return 3;
            }
            System.out.println("Indexing...");
            new ExportRunner(configs.get(configName)).Index();
            System.out.println("Exporting...");
            new ExportRunner(configs.get(configName)).Export();
            return 0;
	    }
	    catch( ParseException exp ) {
	        // oops, something went wrong
	        System.err.println("Parsing failed.  Reason: " + exp.getMessage());
            return 1;
	    } catch (InvalidMarkupException e) {
            e.printStackTrace();
            return 4;
        }
    }

}

Create command-line class.