# builtin function for archives, see $ZDIR/alias_suffix ## vim:ft=zsh function confirm_shar { echo -ne "\e[1;33mshar archives are shell scripts and can easily contain malicious code.\e[0m Proceed? [y/N] " read -q } if [[ -f $1 ]] { case $1 in *.(tar.bz2|bz2)) tar xvjf $1 ;; *.(tar.gz|tgz)) tar xvzf $1 ;; *.tar.lzma) unlzma $1 | tar xv ;; *.ace) unace e $1 ;; *.rar) unrar x $1 ;; *.deb) ar -x $1 ;; *.bz2) bzip2 -d $1 ;; *.lzh) lha x $1 ;; *.gz) gunzip -d $1 ;; *.tar) tar xvf $1 ;; *.zip) unzip $1 ;; *.Z) uncompress $1 ;; *.shar) confirm_shar && sh $1 ;; *.cpio) cpio --no-absolute-filenames -idv < $1 ;; *.lzma) unlzma $1 ;; *) echo "Unknown archive type: $1"; return 2 ;; esac } else { echo "No such file: $1" return 1 }