about summary refs log tree commit diff stats
diff options
context:
space:
mode:
Diffstat (limited to '')
-rwxr-xr-xhm/soispha/conf/lf/commands/scripts/unarchive.sh31
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