Example usage for org.eclipse.jgit.pgm TextBuiltin execute

List of usage examples for org.eclipse.jgit.pgm TextBuiltin execute

Introduction

In this page you can find the example usage for org.eclipse.jgit.pgm TextBuiltin execute.

Prototype

public final void execute(String[] args) throws Exception 

Source Link

Document

Parse arguments and run this command.

Usage

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

License:Eclipse Distribution License

private void execute(final String[] argv) throws Exception {
    /*/* www.  jav  a 2  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  .  java 2s  . co  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();
        }
    }
}