diff --git a/pishrink.sh b/pishrink.sh index 7e308aa..1e17bdd 100755 --- a/pishrink.sh +++ b/pishrink.sh @@ -91,7 +91,6 @@ parallel=false verbose=false prep=false ziptool="" -required_tools="$REQUIRED_TOOLS" while getopts ":adhprsvzZ" opt; do case "${opt}" in @@ -142,7 +141,7 @@ if [[ -n $ziptool ]]; then error $LINENO "$ziptool is an unsupported ziptool." exit -17 else - if [[ $parallel == true && ziptool == "gzip" ]]; then + if [[ $parallel == true && $ziptool == "gzip" ]]; then REQUIRED_TOOLS="$REQUIRED_TOOLS pigz" else REQUIRED_TOOLS="$REQUIRED_TOOLS $ziptool" @@ -161,15 +160,19 @@ done #Copy to new file if requested if [ -n "$2" ]; then - info "Copying $1 to $2..." - cp --reflink=auto --sparse=always "$1" "$2" + f="$2" + if [[ -n $ziptool && "${f##*.}" == ${ZIPEXTENSIONS[$ziptool]} ]]; then # remove zip extension if zip requested because zip tool will complain about extension + f="${f%.*}" + fi + info "Copying $1 to $f..." + cp --reflink=auto --sparse=always "$1" "$f" if (( $? != 0 )); then error $LINENO "Could not copy file..." exit -5 fi old_owner=$(stat -c %u:%g "$1") - chown "$old_owner" "$2" - img="$2" + chown "$old_owner" "$f" + img="$f" fi # cleanup at script exit