extractor improve
This commit is contained in:
@@ -1,8 +1,36 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
set -x
|
||||
|
||||
_help() {
|
||||
echo 'Usage:
|
||||
|
||||
archive-extract2folder [--ask] [arch1] [arch2] ...
|
||||
Extracts archives (tar/tgz/tar.Z/zip/rar) to folder arch1/ creating an extra folder level
|
||||
|
||||
archive-extract [--ask] [arch1] [arch2] ...
|
||||
Extracts archives (tar/tgz/tar.Z/zip/rar) to the current folder
|
||||
|
||||
Arguments:
|
||||
--ask Ask before extracting
|
||||
'
|
||||
exit
|
||||
}
|
||||
|
||||
ASK=0
|
||||
[[ -z "$1" ]] && _help
|
||||
for (( i=1; i<=$#; i++ )); do
|
||||
[[ ${!i} = "-h" ]] && _help
|
||||
[[ ${!i} = "--help" ]] && _help
|
||||
[[ ${!i} = "--ask" ]] && ASK=1
|
||||
done
|
||||
self=$( basename $0 )
|
||||
|
||||
for arch in "$@"; do
|
||||
if [[ ! -e "$arch" ]]; then
|
||||
continue
|
||||
fi
|
||||
case "$arch" in
|
||||
*.tar) D="`basename "$arch" .tar`"; U="tar -x -v -f"; ;;
|
||||
*.tar.gz) D="`basename "$arch" .tar.gz`"; U="tar -x -z -v -f"; ;;
|
||||
@@ -12,18 +40,32 @@ for arch in "$@"; do
|
||||
*.tar.bz2) D="`basename "$arch" .tar.bz2`"; U="tar -x -j -v -f"; ;;
|
||||
*.zip) D="`basename "$arch" .zip`"; U="unzip"; ;;
|
||||
*.rar) D="`basename "$arch" .rar`"; U="unrar x"; ;;
|
||||
*)
|
||||
echo "Cannot extract file $arch"
|
||||
;;
|
||||
esac
|
||||
archive=$( realpath "$arch" )
|
||||
if [[ "$self" = "archive-extract2folder" ]]; then
|
||||
out_folder="$PWD/$D/"
|
||||
fi
|
||||
if [[ "$self" = "archive-extract" ]]; then
|
||||
out_folder="$PWD/"
|
||||
fi
|
||||
|
||||
if [[ -z "$FORCE_EXTRACT" ]]; then
|
||||
if [[ "$ASK" == 1 ]]; then
|
||||
echo "extract $arch to $PWD/$D/?"
|
||||
read foo
|
||||
else
|
||||
echo "extracting $arch to $PWD/$D/"
|
||||
fi
|
||||
mkdir -p "$D"
|
||||
archive=$( realpath "$arch" )
|
||||
pushd "$D"
|
||||
$U "$archive"
|
||||
popd
|
||||
|
||||
if [[ "$self" = "archive-extract2folder" ]]; then
|
||||
mkdir -p "$D"
|
||||
pushd "$D"
|
||||
$U "$archive"
|
||||
popd
|
||||
fi
|
||||
if [[ "$self" = "archive-extract" ]]; then
|
||||
$U "$archive"
|
||||
fi
|
||||
done
|
||||
sleep 1
|
||||
|
||||
Reference in New Issue
Block a user