pgm: Handle exceptions in Config command

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>
This commit is contained in:
Matthias Sohn 2019-01-18 00:15:32 +01:00
parent 518f420fe6
commit d789c9adab
3 changed files with 11 additions and 6 deletions

View 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}

View File

@ -42,9 +42,9 @@
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 {

View File

@ -165,6 +165,7 @@ public static String fatalError(String message) {
/***/ public String clonedEmptyRepository;
/***/ public String cloningInto;
/***/ public String commitLabel;
/***/ public String configOnlyListOptionSupported;
/***/ public String conflictingUsageOf_git_dir_andArguments;
/***/ public String couldNotCreateBranch;
/***/ public String dateInfo;