List of usage examples for org.eclipse.jgit.pgm.internal CLIText get
public static CLIText get()
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(); } } }