about summary refs log tree commit diff stats
path: root/hm/soispha/conf/lf/commands/scripts/unarchive.sh
blob: d52eee616ae8e618ecb34ec77be70a7635b75453 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#! /usr/bin/env dash

# shellcheck source=/dev/null
SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH

# shellcheck disable=SC2269
f="$f"
# shellcheck disable=SC2269
fx="$fx"
# shellcheck disable=SC2269
fs="$fs"
# shellcheck disable=SC2269
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
# vim: ft=sh