Bladeren bron

allow default arguments

Tobias Simetsreiter 4 jaren geleden
bovenliggende
commit
7803881dff
1 gewijzigde bestanden met toevoegingen van 12 en 8 verwijderingen
  1. 12 8
      sharxz

+ 12 - 8
sharxz

@@ -4,6 +4,7 @@ sharxz(){
     TAR_OPTIONS=()
     CHDIR=""
     CMD=""
+    ARGS=()
     OUTPUT="-"
     DEBUG=false
     PARSE=false
@@ -68,7 +69,10 @@ USAGEEOF
     done
     shift $((OPTIND -1))
     INFILE=$1
-    [ "$2" != "" ] && OUTPUT="$2"
+    shift 1
+    [ "$1" == "--" ] && shift 1 && ARGS+=( "$@" ) && shift $#
+    [ ! -z "$1" ] && OUTPUT="$1" && shift 1
+    ARGS+=( "$@" ) && shift $#
     [ "$OUTPUT" == "-" ] && OUTPUT="/dev/stdout"
 
     [ "$CHDIR" == "" ] && [ -d "$INFILE" ] &&
@@ -113,11 +117,12 @@ parse_options(){
 }
 
 print_shar(){
-    printf -- "#!/usr/bin/env bash\n\n"
-    printf -- "DEBUG=$DEBUG\n"
-    printf -- "INSTALL_DIR=\"$INSTALL_DIR\"\n"
-    printf -- "KEEP=$KEEP\n"
-    printf -- "INTERACTIVE=$INTERACTIVE\n"
+    printf "#!/usr/bin/env bash\n\nset -e\n"
+    printf "DEBUG=$DEBUG\n"
+    printf "KEEP=$KEEP\n"
+    printf "INTERACTIVE=$INTERACTIVE\n"
+    printf "INSTALL_DIR=\"$INSTALL_DIR\"\n\n"
+
     $ADD_PARSER && printf -- "$SHARPARSER\n"
     printf -- "$PREPSHAR\n\n"
     printf -- "$UNSHAR\n\n"
@@ -127,7 +132,7 @@ print_shar(){
     $DEBUG && set +x
     printf -- "\n$SETUPSHAR\n"
 
-    printf -- "$CMD"' "$@"'"\n"
+    printf -- "$CMD ${ARGS[@]}"' "$@"'"\n"
 
     printf -- "\n$CLEANUPSHAR\n"
 
@@ -179,7 +184,6 @@ shift $((OPTIND -1))
 SHARPARSEREOF
 
 read -r -d '' PREPSHAR <<'PREPSHAREOF'
-set -e
 $DEBUG && set -x
 
 cleanup(){