Example usage for org.eclipse.jgit.pgm.internal CLIText get

List of usage examples for org.eclipse.jgit.pgm.internal CLIText get

Introduction

In this page you can find the example usage for org.eclipse.jgit.pgm.internal CLIText get.

Prototype

public static CLIText get() 

Source Link

Document

Get an instance of this translation bundle

Usage

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

License:Eclipse Distribution License

/**
 * Parse the command line and execute the requested action.
 *
 * Subclasses should allocate themselves and then invoke this method:
 *
 * <pre>//from   www  .j a v  a  2 s .c o m
 * class ExtMain {
 *    public static void main(String[] argv) {
 *       new ExtMain().run(argv);
 *    }
 * }
 * </pre>
 *
 * @param argv
 *            arguments.
 */
protected void run(final String[] argv) {
    logger = LoggerFactory.getLogger(PgmMain.class);

    try {
        if (!installConsole()) {
            AwtAuthenticator.install();
            AwtCredentialsProvider.install();
        }
        configureHttpProxy();
        execute(argv);
    } catch (Die err) {
        if (err.isAborted())
            //System.exit(1);
            System.err.println(MessageFormat.format(CLIText.get().fatalError, err.getMessage()));
        if (showStackTrace)
            err.printStackTrace();
        //System.exit(128);
    } catch (Exception err) {
        // Try to detect errno == EPIPE and exit normally if that happens
        // There may be issues with operating system versions and locale,
        // but we can probably assume that these messages will not be thrown
        // under other circumstances.
        if (err.getClass() == IOException.class) {
            // Linux, OS X
            if (err.getMessage().equals("Broken pipe")) //$NON-NLS-1$
                //   System.exit(0);
                logger.info("Broken pipe");

            // Windows
            if (err.getMessage().equals("The pipe is being closed")) //$NON-NLS-1$
                //   System.exit(0);
                logger.info("The pipe is being closed");
        }
        if (!showStackTrace && err.getCause() != null && err instanceof TransportException)
            System.err.println(MessageFormat.format(CLIText.get().fatalError, err.getCause().getMessage()));

        if (err.getClass().getName().startsWith("org.eclipse.jgit.errors.")) { //$NON-NLS-1$
            System.err.println(MessageFormat.format(CLIText.get().fatalError, err.getMessage()));
            if (showStackTrace)
                err.printStackTrace();
            //System.exit(128);
        }
        err.printStackTrace();
        //System.exit(1);
    }
    if (System.out.checkError()) {
        System.err.println(CLIText.get().unknownIoErrorStdout);
        //System.exit(1);
    }
    if (System.err.checkError()) {
        // No idea how to present an error here, most likely disk full or
        // broken pipe
        //System.exit(1);
    }
}

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

License:Eclipse Distribution License

private void execute(final String[] argv) throws Exception {
    /*/*from   w  w  w. ja v  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:kr.re.ec.grigit.util.PgmMain.java

License:Eclipse Distribution License

/**
 * Evaluate the {@code --git-dir} option and open the repository.
 *
 * @param gitdir/*from  w w  w.ja va 2  s  .  c o  m*/
 *            the {@code --git-dir} option given on the command line. May be
 *            null if it was not supplied.
 * @return the repository to operate on.
 * @throws IOException
 *             the repository cannot be opened.
 */
protected Repository openGitDir(String gitdir) throws IOException {
    RepositoryBuilder rb = new RepositoryBuilder() //
            .setGitDir(gitdir != null ? new File(gitdir) : null) //
            .readEnvironment() //
            .findGitDir();
    if (rb.getGitDir() == null)
        throw new Die(CLIText.get().cantFindGitDirectory);
    return rb.build();
}

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

License:Eclipse Distribution License

private static boolean installConsole() {
    try {//  w  w  w.  j  ava2 s.  c  o  m
        install("org.eclipse.jgit.console.ConsoleAuthenticator"); //$NON-NLS-1$
        install("org.eclipse.jgit.console.ConsoleCredentialsProvider"); //$NON-NLS-1$
        return true;
    } catch (ClassNotFoundException e) {
        return false;
    } catch (NoClassDefFoundError e) {
        return false;
    } catch (UnsupportedClassVersionError e) {
        return false;

    } catch (IllegalArgumentException e) {
        throw new RuntimeException(CLIText.get().cannotSetupConsole, e);
    } catch (SecurityException e) {
        throw new RuntimeException(CLIText.get().cannotSetupConsole, e);
    } catch (IllegalAccessException e) {
        throw new RuntimeException(CLIText.get().cannotSetupConsole, e);
    } catch (InvocationTargetException e) {
        throw new RuntimeException(CLIText.get().cannotSetupConsole, e);
    } catch (NoSuchMethodException e) {
        throw new RuntimeException(CLIText.get().cannotSetupConsole, e);
    }
}

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

License:Eclipse Distribution License

/**
 * Configure the JRE's standard HTTP based on <code>http_proxy</code>.
 * <p>// www.j  a  va 2  s.c  o  m
 * The popular libcurl library honors the <code>http_proxy</code>
 * environment variable as a means of specifying an HTTP proxy for requests
 * made behind a firewall. This is not natively recognized by the JRE, so
 * this method can be used by command line utilities to configure the JRE
 * before the first request is sent.
 *
 * @throws MalformedURLException
 *             the value in <code>http_proxy</code> is unsupportable.
 */
private static void configureHttpProxy() throws MalformedURLException {
    final String s = System.getenv("http_proxy"); //$NON-NLS-1$
    if (s == null || s.equals("")) //$NON-NLS-1$
        return;

    final URL u = new URL((s.indexOf("://") == -1) ? "http://" + s : s); //$NON-NLS-1$ //$NON-NLS-2$
    if (!"http".equals(u.getProtocol())) //$NON-NLS-1$
        throw new MalformedURLException(
                MessageFormat.format(CLIText.get().invalidHttpProxyOnlyHttpSupported, s));

    final String proxyHost = u.getHost();
    final int proxyPort = u.getPort();

    System.setProperty("http.proxyHost", proxyHost); //$NON-NLS-1$
    if (proxyPort > 0)
        System.setProperty("http.proxyPort", String.valueOf(proxyPort)); //$NON-NLS-1$

    final String userpass = u.getUserInfo();
    if (userpass != null && userpass.contains(":")) { //$NON-NLS-1$
        final int c = userpass.indexOf(':');
        final String user = userpass.substring(0, c);
        final String pass = userpass.substring(c + 1);
        CachedAuthenticator.add(new CachedAuthenticator.CachedAuthentication(proxyHost, proxyPort, user, pass));
    }
}

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

License:Apache License

/**
 * Execute a command./*from  w ww.j a va 2  s  .com*/
 *
 * @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();
        }
    }
}