Example usage for org.eclipse.jgit.pgm.opt CmdLineParser parseArgument

List of usage examples for org.eclipse.jgit.pgm.opt CmdLineParser parseArgument

Introduction

In this page you can find the example usage for org.eclipse.jgit.pgm.opt CmdLineParser parseArgument.

Prototype

@Override
public void parseArgument(String... args) throws CmdLineException 

Source Link

Usage

From source file:kr.re.ec.grigit.util.PgmMain.java

License:Eclipse Distribution License

private void execute(final String[] argv) throws Exception {
    /*//from w  ww.  ja  va2  s.c o m
       if (version) {
          String cmdId = Version.class.getSimpleName().toLowerCase();
          subcommand = CommandCatalog.get(cmdId).create();
       }
               
               
               
       if (cmd.requiresRepository())
          cmd.init(openGitDir(gitdir), null);
       else
          cmd.init(null, gitdir);
       try {
          cmd.execute(arguments.toArray(new String[arguments.size()]));
       } finally {
          if (cmd.outw != null)
    cmd.outw.flush();
          if (cmd.errw != null)
    cmd.errw.flush();
       }
       */
    final CmdLineParser clp = new CmdLineParser(this);
    PrintWriter writer = new PrintWriter(System.err);
    try {
        clp.parseArgument(argv);
    } catch (CmdLineException err) {
        if (argv.length > 0 && !help && !version) {
            //   cmd.errw.println(MessageFormat.format(CLIText.get().fatalError, err.getMessage()));
            writer.println(MessageFormat.format(CLIText.get().fatalError, err.getMessage()));
            writer.flush();
            //   System.exit(1);
        }
    }

    if (argv.length == 0 || help) {
        final String ex = clp.printExample(ExampleMode.ALL, CLIText.get().resourceBundle());
        //   cmd.outw.println("jgit" + ex + " command [ARG ...]");
        writer.println("jgit" + ex + " command [ARG ...]"); //$NON-NLS-1$
        if (help) {
            //   cmd.outw.println();
            writer.println();
            clp.printUsage(writer, CLIText.get().resourceBundle());
            //   cmd.outw.println();
            writer.println();
        } else if (subcommand == null) {
            writer.println();
            //   cmd.outw.println();
            writer.println(CLIText.get().mostCommonlyUsedCommandsAre);
            //   cmd.outw.println(CLIText.get().mostCommonlyUsedCommandsAre);
            final CommandRef[] common = CommandCatalog.common();
            int width = 0;
            for (final CommandRef c : common)
                width = Math.max(width, c.getName().length());
            width += 2;

            for (final CommandRef c : common) {
                writer.print(' ');
                writer.print(c.getName());
                for (int i = c.getName().length(); i < width; i++)
                    writer.print(' ');
                writer.print(CLIText.get().resourceBundle().getString(c.getUsage()));
                writer.println();
                //      cmd.outw.print(' ');
                //      cmd.outw.print(c.getName());
                //      for (int i = c.getName().length(); i < width; i++)
                //         cmd.outw.print(' ');
                //      cmd.outw.print(CLIText.get().resourceBundle().getString(c.getUsage()));
                //      cmd.outw.println();
            }
            writer.println();
            //   cmd.outw.println();
        }
        writer.flush();
        //   cmd.outw.flush();
        //   System.exit(1);
    }

    if (version) {
        String cmdId = Version.class.getSimpleName().toLowerCase();
        subcommand = CommandCatalog.get(cmdId).create();
    }

    final TextBuiltin cmd = subcommand;

    if (cmd.requiresRepository())
        cmd.init(openGitDir(gitdir), null);
    else
        cmd.init(null, gitdir);
    try {
        cmd.execute(arguments.toArray(new String[arguments.size()]));
    } finally {
        if (cmd.outw != null)
            cmd.outw.flush();
        if (cmd.errw != null)
            cmd.errw.flush();
    }
}

From source file:org.apache.sshd.git.pgm.EmbeddedCommandRunner.java

License:Apache License

/**
 * Execute a command.//from  w  ww  .jav  a  2 s. c o m
 *
 * @param argv
 *          the command and its arguments
 * @param in
 *          the input stream, may be null in which case the system input stream will be used
 * @param out
 *          the output stream, may be null in which case the system output stream will be used
 * @param err
 *          the error stream, may be null in which case the system error stream will be used
 * @throws Exception
 *          if an error occurs
 */
public void execute(final String[] argv, InputStream in, OutputStream out, OutputStream err) throws Exception {
    final CmdLineParser clp = new CmdLineParser(this);
    PrintWriter writer = new PrintWriter(err != null ? err : System.err);
    try {
        clp.parseArgument(argv);
    } catch (CmdLineException e) {
        if (argv.length > 0 && !help) {
            writer.println(MessageFormat.format(CLIText.get().fatalError, e.getMessage()));
            writer.flush();
            throw new Die(true);
        }
    }

    if (argv.length == 0 || help) {
        final String ex = clp.printExample(ExampleMode.ALL, CLIText.get().resourceBundle());
        writer.println("jgit" + ex + " command [ARG ...]"); //$NON-NLS-1$
        if (help) {
            writer.println();
            clp.printUsage(writer, CLIText.get().resourceBundle());
            writer.println();
        } else if (subcommand == null) {
            writer.println();
            writer.println(CLIText.get().mostCommonlyUsedCommandsAre);
            final CommandRef[] common = CommandCatalog.common();
            int width = 0;
            for (final CommandRef c : common) {
                width = Math.max(width, c.getName().length());
            }
            width += 2;

            for (final CommandRef c : common) {
                writer.print(' ');
                writer.print(c.getName());
                for (int i = c.getName().length(); i < width; i++) {
                    writer.print(' ');
                }
                writer.print(CLIText.get().resourceBundle().getString(c.getUsage()));
                writer.println();
            }
            writer.println();
        }
        writer.flush();
        throw new Die(true);
    }

    gitdir = new File(rootDir, gitdir).getPath();

    final TextBuiltin cmd = subcommand;
    //        cmd.ins = in;
    //        cmd.outs = out;
    //        cmd.errs = err;
    //        if (cmd.requiresRepository())
    //            cmd.init(openGitDir(gitdir), null);
    //        else
    //            cmd.init(null, gitdir);
    //        try {
    //            cmd.execute(arguments.toArray(new String[arguments.size()]));
    //        } finally {
    //            if (cmd.outw != null)
    //                cmd.outw.flush();
    //            if (cmd.errw != null)
    //                cmd.errw.flush();
    //        }
    set(cmd, "ins", in);
    set(cmd, "outs", out);
    set(cmd, "errs", err);

    Boolean success = (Boolean) call(cmd, "requiresRepository");
    if (success) {
        call(cmd, "init", new Class[] { Repository.class, String.class },
                new Object[] { openGitDir(gitdir), gitdir });
    } else {
        call(cmd, "init", new Class[] { Repository.class, String.class }, new Object[] { null, gitdir });
    }
    try {
        cmd.execute(arguments.toArray(new String[arguments.size()]));
    } finally {
        if (get(cmd, "outw") != null) {
            ((ThrowingPrintWriter) get(cmd, "outw")).flush();
        }
        if (get(cmd, "errw") != null) {
            ((ThrowingPrintWriter) get(cmd, "errw")).flush();
        }
    }
}