|
|
@@ -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(){
|