]> source.dussan.org Git - jgit.git/commitdiff
pgm: Handle exceptions in Config command 08/135308/2
authorMatthias Sohn <matthias.sohn@sap.com>
Thu, 17 Jan 2019 23:15:32 +0000 (00:15 +0100)
committerMatthias Sohn <matthias.sohn@sap.com>
Sun, 20 Jan 2019 00:43:19 +0000 (01:43 +0100)
This avoids we show a stacktrace on the console by default when this
type of exception is thrown during the run method is executed. Also
externalize error message.

Change-Id: I909dc77385a672d8298053b12683c0cbbf9f2aa2
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
org.eclipse.jgit.pgm/resources/org/eclipse/jgit/pgm/internal/CLIText.properties
org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Config.java
org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/internal/CLIText.java

index 69bf1723ef948d0d16c87f2cf02acb82f3744597..418e59e48075f005d4821826e07c555502f4a3fd 100644 (file)
@@ -51,6 +51,7 @@ cleanRequireForce=clean.requireForce defaults to true and neither -n nor -f give
 clonedEmptyRepository=warning: You appear to have cloned an empty repository.
 cloningInto=Cloning into ''{0}''...
 commitLabel=commit
+configOnlyListOptionSupported=only the --list option is currently supported
 configFileNotFound=configuration file {0} not found
 conflictingUsageOf_git_dir_andArguments=conflicting usage of --git-dir and arguments
 couldNotCreateBranch=Could not create branch {0}: {1}
index f762c0d052f8a723f527bf8b61bbfefa96819df4..979c6fa9458ee98b7618814e12d843d6ef39788c 100644 (file)
@@ -42,9 +42,9 @@ import java.io.IOException;
 import java.util.Set;
 
 import org.eclipse.jgit.errors.ConfigInvalidException;
-import org.eclipse.jgit.errors.NotSupportedException;
 import org.eclipse.jgit.lib.Constants;
 import org.eclipse.jgit.lib.StoredConfig;
+import org.eclipse.jgit.pgm.internal.CLIText;
 import org.eclipse.jgit.storage.file.FileBasedConfig;
 import org.eclipse.jgit.util.FS;
 import org.eclipse.jgit.util.StringUtils;
@@ -70,12 +70,15 @@ class Config extends TextBuiltin {
 
        /** {@inheritDoc} */
        @Override
-       protected void run() throws Exception {
-               if (list)
+       protected void run() {
+               if (!list) {
+                       throw die(CLIText.get().configOnlyListOptionSupported);
+               }
+               try {
                        list();
-               else
-                       throw new NotSupportedException(
-                                       "only --list option is currently supported"); //$NON-NLS-1$
+               } catch (IOException | ConfigInvalidException e) {
+                       throw die(e.getMessage(), e);
+               }
        }
 
        private void list() throws IOException, ConfigInvalidException {
index 397b6b14ba7bf998023645d0c7da8fa3d00a6683..6a8a03eaf7daf9f8ded6b33920dbde7a65e7c046 100644 (file)
@@ -165,6 +165,7 @@ public class CLIText extends TranslationBundle {
        /***/ public String clonedEmptyRepository;
        /***/ public String cloningInto;
        /***/ public String commitLabel;
+       /***/ public String configOnlyListOptionSupported;
        /***/ public String conflictingUsageOf_git_dir_andArguments;
        /***/ public String couldNotCreateBranch;
        /***/ public String dateInfo;