diff --git a/bin/vault.sh b/bin/vault.sh index 5925786..3ce3434 100755 --- a/bin/vault.sh +++ b/bin/vault.sh @@ -1,7 +1,7 @@ #!/bin/sh -DIRNAME=`dirname "$0"` -PROGNAME=`basename "$0"` +DIRNAME=$(dirname "$0") +PROGNAME=$(basename "$0") GREP="grep" # Use the maximum available, or set MAX_FD != -1 to use that @@ -18,40 +18,30 @@ warn() { # Helper to puke. # die() { - warn $* + warn "$*" exit 1 } -# OS specific support (must be 'true' or 'false'). +# Detect Cygwin specific support (must be 'true' or 'false'). cygwin=false; -darwin=false; -linux=false; -case "`uname`" in +case "$(uname)" in CYGWIN*) cygwin=true ;; - - Darwin*) - darwin=true - ;; - - Linux) - linux=true - ;; esac # For Cygwin, ensure paths are in UNIX format before anything is touched if $cygwin ; then [ -n "$VAULT_HOME" ] && - VAULT_HOME=`cygpath --unix "$VAULT_HOME"` + VAULT_HOME=$(cygpath --unix "$VAULT_HOME") [ -n "$JAVA_HOME" ] && - JAVA_HOME=`cygpath --unix "$JAVA_HOME"` + JAVA_HOME=$(cygpath --unix "$JAVA_HOME") [ -n "$JAVAC_JAR" ] && - JAVAC_JAR=`cygpath --unix "$JAVAC_JAR"` + JAVAC_JAR=$(cygpath --unix "$JAVAC_JAR") fi # Setup VAULT_HOME -VAULT_HOME=`cd "$DIRNAME/.."; pwd` +VAULT_HOME=$(cd "$DIRNAME/.." || exit; pwd) export VAULT_HOME # Setup the JVM @@ -71,7 +61,7 @@ if [ "x$VAULT_CLASSPATH" = "x" ]; then VAULT_CLASSPATH="$VAULT_HOME/tomcat/tomcat-util.jar:$VAULT_HOME/../tomcat/bin/tomcat-juli.jar" elif [ -d "$VAULT_HOME/lib" ];then VAULT_CLASSPATH="$VAULT_HOME/lib/tomcat-util.jar:$VAULT_HOME/bin/tomcat-juli.jar" - VAULT_HOME="$VAULT_HOME/lib" + VAULT_HOME="$VAULT_HOME/lib" else VAULT_HOME="/usr/share/java" VAULT_CLASSPATH="/usr/share/java/tomcat/tomcat-util.jar:/usr/share/tomcat/bin/tomcat-juli.jar" @@ -84,12 +74,12 @@ fi # For Cygwin, switch paths to Windows format before running java if $cygwin; then - VAULT_HOME=`cygpath --path --windows "$VAULT_HOME"` - VAULT_CLASSPATH=`cygpath --path --windows "$VAULT_CLASSPATH"` + VAULT_HOME=$(cygpath --path --windows "$VAULT_HOME") + VAULT_CLASSPATH=$(cygpath --path --windows "$VAULT_CLASSPATH") fi # Display our environment -if [[ "$@" != "-h" && "$@" != "--help" ]]; then +if [ "$*" != "-h" ] && [ "$*" != "--help" ]; then echo "=========================================================================" echo "" echo " Tomcat Vault" @@ -102,8 +92,8 @@ echo "=========================================================================" echo "" fi -eval \"$JAVA\" $JAVA_OPTS \ - -cp \"$VAULT_HOME/tomcat-vault.jar:$VAULT_CLASSPATH\" \ +eval \"$JAVA\" "$JAVA_OPTS" \ + -cp \""$VAULT_HOME"/tomcat-vault.jar:"$VAULT_CLASSPATH"\" \ org.apache.tomcat.vault.VaultTool \ '"$@"' diff --git a/src/main/java/org/apache/tomcat/vault/VaultTool.java b/src/main/java/org/apache/tomcat/vault/VaultTool.java index 2f3e997..4548089 100644 --- a/src/main/java/org/apache/tomcat/vault/VaultTool.java +++ b/src/main/java/org/apache/tomcat/vault/VaultTool.java @@ -54,6 +54,7 @@ public class VaultTool { public static final String REMOVE_SEC_ATTR = "remove-sec-attr"; public static final String GENERATE_CONFIG_FILE = "generate-config"; public static final String HELP_PARAM = "help"; + public static final String SKIP_SUMMARY_PARAM = "skip-summary"; public static final String CRYPT = "encrypt"; private static boolean skipSummary = false; @@ -180,6 +181,7 @@ private void initOptions() { options.addOption("A", ALIAS_PARAM, true, "Vault keystore alias"); options.addOption("b", VAULT_BLOCK_PARAM, true, "Vault block"); options.addOption("a", ATTRIBUTE_PARAM, true, "Attribute name"); + options.addOption("s", SKIP_SUMMARY_PARAM, false, "Skip summary"); OptionGroup og = new OptionGroup(); Option x = new Option("x", SEC_ATTR_VALUE_PARAM, true, "Secured attribute value (such as password) to store"); @@ -200,6 +202,10 @@ private void initOptions() { private int execute() throws Exception { + if (cmdLine.hasOption(SKIP_SUMMARY_PARAM)){ + skipSummary = true; + } + if (cmdLine.hasOption(HELP_PARAM)) { // Just print the usage. Printing summary is not required here. skipSummary = true;