Return correct exit codes from extract script

Signed-off-by: lzzy12 <jhashivam2020@gmail.com>
This commit is contained in:
lzzy12 2020-06-28 14:26:41 +05:30
parent b5a162f15d
commit fed3be2411

84
extract
View File

@ -1,36 +1,64 @@
#!/bin/bash #!/bin/bash
if [ $# -lt 1 ];then if [ $# -lt 1 ]; then
echo "Usage: `basename $0` FILES" echo "Usage: $(basename $0) FILES"
exit 1 exit 1
fi fi
extract () { extract() {
arg="$1" arg="$1"
cd "$(dirname "$arg")" || exit cd "$(dirname "$arg")" || exit
case "$arg" in case "$arg" in
*.tar.bz2) *.tar.bz2)
tar xjf "$arg" --one-top-level ;; tar xjf "$arg" --one-top-level
*.tar.gz) local code=$?
tar xzf "$arg" --one-top-level ;; ;;
*.bz2) bunzip2 "$arg" ;; *.tar.gz)
*.gz) gunzip "$arg" ;; tar xzf "$arg" --one-top-level
*.tar) tar xf "$arg" --one-top-level ;; local code=$?
*.tbz2) tar xjf "$arg" --one-top-level ;; ;;
*.tgz) tar xzf "$arg" --one-top-level ;; *.bz2)
*.zip) bunzip2 "$arg"
a_dir=`expr "$arg" : '\(.*\).zip'` local code=$?
7z x "$arg" -o"$a_dir" ;; ;;
*.Z) uncompress "$arg" ;; *.gz)
*.rar) gunzip "$arg"
a_dir=`expr "$arg" : '\(.*\).rar'` ; local code=$?
mkdir "$a_dir" ; ;;
7z x "$arg" -o"$a_dir" ;; *.tar)
*) echo "'$arg' cannot be extracted via extract()" 1>&2 tar xf "$arg" --one-top-level
exit 1 ;; local code=$?
;;
esac *.tbz2)
cd - || exit (tar xjf "$arg" --one-top-level)
local code=$?
;;
*.tgz)
tar xzf "$arg" --one-top-level
local code=$?
;;
*.zip)
a_dir=$(expr "$arg" : '\(.*\).zip')
7z x "$arg" -o"$a_dir"
local code=$?
;;
*.Z)
uncompress "$arg"
local code=$?
;;
*.rar)
a_dir=$(expr "$arg" : '\(.*\).rar')
mkdir "$a_dir"
7z x "$arg" -o"$a_dir"
local code=$?
;;
*)
echo "'$arg' cannot be extracted via extract()" 1>&2
exit 1
;;
esac
cd - || exit $?
exit $code
} }
extract "$1" extract "$1"