]> source.dussan.org Git - jgit.git/commitdiff
clone: display progress messages 02/63402/2
authorShawn Pearce <sop@google.com>
Fri, 1 Jan 2016 00:03:13 +0000 (16:03 -0800)
committerShawn Pearce <sop@google.com>
Fri, 1 Jan 2016 01:37:16 +0000 (17:37 -0800)
Also support -q/--quiet flag to disable progress.

Change-Id: I979277502c990f6dec052d095461c996ff8fe577

org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Clone.java

index cd6953cb0503e9dbd0f89dd6d4aa689675989482..04078287fb2b7b4e682a7fbf652d98234571357a 100644 (file)
@@ -50,6 +50,7 @@ import org.eclipse.jgit.api.CloneCommand;
 import org.eclipse.jgit.api.Git;
 import org.eclipse.jgit.api.errors.InvalidRemoteException;
 import org.eclipse.jgit.lib.Constants;
+import org.eclipse.jgit.lib.TextProgressMonitor;
 import org.eclipse.jgit.pgm.internal.CLIText;
 import org.eclipse.jgit.transport.URIish;
 import org.eclipse.jgit.util.SystemReader;
@@ -70,6 +71,9 @@ class Clone extends AbstractFetchCommand {
        @Option(name = "--bare", usage = "usage_bareClone")
        private boolean isBare;
 
+       @Option(name = "--quiet", usage = "usage_quiet")
+       private Boolean quiet;
+
        @Argument(index = 0, required = true, metaVar = "metaVar_uriish")
        private String sourceUri;
 
@@ -109,10 +113,16 @@ class Clone extends AbstractFetchCommand {
 
                command.setGitDir(gitdir == null ? null : new File(gitdir));
                command.setDirectory(localNameF);
-               outw.println(MessageFormat.format(CLIText.get().cloningInto, localName));
+               boolean msgs = quiet == null || !quiet.booleanValue();
+               if (msgs) {
+                       command.setProgressMonitor(new TextProgressMonitor(errw));
+                       outw.println(MessageFormat.format(
+                                       CLIText.get().cloningInto, localName));
+                       outw.flush();
+               }
                try {
                        db = command.call().getRepository();
-                       if (db.resolve(Constants.HEAD) == null)
+                       if (msgs && db.resolve(Constants.HEAD) == null)
                                outw.println(CLIText.get().clonedEmptyRepository);
                } catch (InvalidRemoteException e) {
                        throw die(MessageFormat.format(CLIText.get().doesNotExist,
@@ -121,8 +131,9 @@ class Clone extends AbstractFetchCommand {
                        if (db != null)
                                db.close();
                }
-
-               outw.println();
-               outw.flush();
+               if (msgs) {
+                       outw.println();
+                       outw.flush();
+               }
        }
 }