From 36e122b62c7093da41e63c41ccecd4d2c7fafb20 Mon Sep 17 00:00:00 2001 From: fabian Date: Sun, 17 Mar 2024 14:01:36 +0100 Subject: [PATCH] improved/ modernised "ex"-function --- home_external/.bashrc | 43 +++++++++++++++++++++++-------------------- 1 file changed, 23 insertions(+), 20 deletions(-) diff --git a/home_external/.bashrc b/home_external/.bashrc index 1b5d147..2ff28c1 100644 --- a/home_external/.bashrc +++ b/home_external/.bashrc @@ -186,26 +186,29 @@ colours() { # ex - archive extractor # usage: ex -ex () -{ - if [ -f $1 ] ; then - case $1 in - *.tar.bz2) tar xjf $1 ;; - *.tar.gz) tar xzf $1 ;; - *.bz2) bunzip2 $1 ;; - *.rar) unrar x $1 ;; - *.gz) gunzip $1 ;; - *.tar) tar xf $1 ;; - *.tbz2) tar xjf $1 ;; - *.tgz) tar xzf $1 ;; - *.zip) unzip $1 ;; - *.Z) uncompress $1;; - *.7z) 7z x $1 ;; - *) echo "'$1' cannot be extracted via ex()" ;; - esac - else - echo "'$1' is not a valid file" - fi +ex() { + if [[ ! -f "$1" ]]; then + echo "'$1' is not a valid file" + return 1; + fi + # FIXME 7z kann (theoretisch) tar + outdir=${1%.*} + case "$1" in + *.tar.bz2 | *.tbz | *.tbz2) + tar xjf $1 -C $outdir;; + *.tar.gz | *.tgz) + tar xzf $1 -C $outdir;; + *.tar) + tar xf $1 -C $outdir;; + *.7z | *.zip | *.gz | *.bz | *.bz2) + 7z x -o$outdir $1;; + *.rar) + unrar x $1;; + *.Z) + uncompress $1;; + *) + echo "'$1' cannot be extracted via ex()";; + esac } # BEGIN_KITTY_SHELL_INTEGRATION