summaryrefslogtreecommitdiff
path: root/fedora/.local/bin/extract
diff options
context:
space:
mode:
authorTheSiahxyz <164138827+TheSiahxyz@users.noreply.github.com>2025-12-07 18:16:05 +0900
committerTheSiahxyz <164138827+TheSiahxyz@users.noreply.github.com>2025-12-07 18:16:05 +0900
commit5ff02959d3069923bca63cb54c4bb246b86bf20d (patch)
tree7ef1b56fb85a48c563bb3af51c26f181741282be /fedora/.local/bin/extract
parentf65fe7591c18d6c8f4ecac5f379407a910aba1bc (diff)
deleted .gnupg/gpg-agent.conf, created .gnupg/, created .config/, created .local/, created .gnupg/
Diffstat (limited to 'fedora/.local/bin/extract')
-rwxr-xr-xfedora/.local/bin/extract41
1 files changed, 41 insertions, 0 deletions
diff --git a/fedora/.local/bin/extract b/fedora/.local/bin/extract
new file mode 100755
index 0000000..b352a70
--- /dev/null
+++ b/fedora/.local/bin/extract
@@ -0,0 +1,41 @@
+#!/bin/sh
+
+# Default behavior: Extract archive into new directory
+# Behavior with `-c` option: Extract contents into current directory
+
+while getopts "hc" o; do case "${o}" in
+ c) extracthere="True" ;;
+ *) printf 'Options:\n -c: Extract archive into current directory rather than a new one.\n' && exit ;;
+ esac done
+
+if [ -z "$extracthere" ]; then
+ archive="$(readlink -f "$*")" &&
+ directory=${archive%.*} &&
+ mkdir -p "$directory" &&
+ cd "$directory" || exit
+else
+ archive="$(readlink -f "$(echo "$*" | cut -d' ' -f2)")"
+fi
+
+[ "$archive" = "" ] && printf 'Give archive to extract as argument.\n' && exit
+
+if [ -f "$archive" ]; then
+ case "$archive" in
+ *.tar.bz2 | *.tar.xz | *.tbz2) tar xvjf "$archive" ;;
+ *.tar.gz | *.tgz) tar xvzf "$archive" ;;
+ *.lzma) unlzma "$archive" ;;
+ *.bz2) bunzip2 "$archive" ;;
+ *.rar) unrar x -ad "$archive" ;;
+ *.gz) gunzip "$archive" ;;
+ *.tar) tar xvf "$archive" ;;
+ *.zip | *.jar | *.war) unzip "$archive" ;;
+ *.Z) uncompress "$archive" ;;
+ *.7z) 7z x "$archive" ;;
+ *.xz) unxz "$archive" ;;
+ *.exe) cabextract "$archive" ;;
+ *.ace) unace x "$archive" ;;
+ *) printf "extract: '%s' - unknown archive method\\n" "$archive" ;;
+ esac
+else
+ printf 'File "%s" not found.\n' "$archive"
+fi