~kris/dots

srice

ref: 178c9a25a484ead715392d50e21d03df486b8b41 srice/.local/bin/extract -rwxr-xr-x 1.1 KiB
178c9a25 — Kris Yotam conky: sync proper config from moirai (was the greenred variant) 2 months ago
                                                                                
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
32
33
34
#!/bin/sh
# extract -- extract any archive format
set -eu

if [ -z "${1:-}" ]; then
    echo "Usage: extract <archive> [archive...]" >&2
    exit 1
fi

for f in "$@"; do
    if [ ! -f "$f" ]; then
        echo "Not a file: $f" >&2
        continue
    fi
    case "$f" in
        *.tar.bz2|*.tbz2)   tar xjf "$f" ;;
        *.tar.gz|*.tgz)     tar xzf "$f" ;;
        *.tar.xz|*.txz)     tar xJf "$f" ;;
        *.tar.zst)           tar --zstd -xf "$f" ;;
        *.tar)               tar xf "$f" ;;
        *.bz2)               bunzip2 "$f" ;;
        *.gz)                gunzip "$f" ;;
        *.xz)                xz -d "$f" ;;
        *.zst)               zstd -d "$f" ;;
        *.rar)               unrar x "$f" ;;
        *.zip)               unzip "$f" ;;
        *.7z)                7z x "$f" ;;
        *.Z)                 uncompress "$f" ;;
        *.lzma)              unlzma "$f" ;;
        *.deb)               ar x "$f" ;;
        *.rpm)               rpm2cpio "$f" | cpio -idmv ;;
        *)                   echo "Unknown format: $f" >&2 ;;
    esac
done