diff options
-rwxr-xr-x | hm/soispha/conf/lf/commands/scripts/unarchive.sh | 31 |
1 files changed, 18 insertions, 13 deletions
diff --git a/hm/soispha/conf/lf/commands/scripts/unarchive.sh b/hm/soispha/conf/lf/commands/scripts/unarchive.sh index d52eee61..7a1377fa 100755 --- a/hm/soispha/conf/lf/commands/scripts/unarchive.sh +++ b/hm/soispha/conf/lf/commands/scripts/unarchive.sh @@ -15,17 +15,22 @@ id="$id" # extract the current file with the right command # (xkcd link: https://xkcd.com/1168/) set -f -# TODO: add support for multiple files at once -case "$f" in -*.tar.bz | *.tar.bz2 | *.tbz | *.tbz2) tar xjvf "$f" ;; -*.tar.gz | *.tgz) tar xzvf "$f" ;; -*.tar.xz | *.txz) tar xJvf "$f" ;; -*.zip) unzip "$f" ;; -*.rar) - die "rar is a unfree format!" - #unrar x $f - ;; -*.7z) 7z x "$f" ;; -*) die "Unsupported format" ;; -esac + +unarchive() { + case "$1" in + *.tar.bz | *.tar.bz2 | *.tbz | *.tbz2) tar xjvf "$1" ;; + *.tar.gz | *.tgz) tar xzvf "$1" ;; + *.tar.xz | *.txz) tar xJvf "$1" ;; + *.zip) unzip "$1" ;; + *.rar) + die "rar is a unfree format!" + ;; + *.7z) 7z x "$1" ;; + *) die "Unsupported format" ;; + esac +} + +while read -r file; do + unarchive "$file" +done <"$fx" # vim: ft=sh |