summaryrefslogtreecommitdiff
path: root/lib/functions.zsh
diff options
context:
space:
mode:
Diffstat (limited to 'lib/functions.zsh')
-rw-r--r--lib/functions.zsh59
1 files changed, 36 insertions, 23 deletions
diff --git a/lib/functions.zsh b/lib/functions.zsh
index e3c0de43e..b29d3e482 100644
--- a/lib/functions.zsh
+++ b/lib/functions.zsh
@@ -1,26 +1,3 @@
-## fixme, i duplicated this in xterms - oops
-function title {
- if [[ $TERM == "screen" ]]; then
- # Use these two for GNU Screen:
- print -nR $'\033k'$1$'\033'\\\
-
- print -nR $'\033]0;'$2$'\a'
- elif [[ ($TERM =~ "^xterm") ]] || [[ ($TERM == "rxvt") ]]; then
- # Use this one instead for XTerms:
- print -nR $'\033]0;'$*$'\a'
- fi
-}
-
-function precmd {
- title zsh "$PWD"
-}
-
-function preexec {
- emulate -L zsh
- local -a cmd; cmd=(${(z)1})
- title $cmd[1]:t "$cmd[2,-1]"
-}
-
function zsh_stats() {
history | awk '{print $2}' | sort | uniq -c | sort -rn | head
}
@@ -37,3 +14,39 @@ function take() {
mkdir -p $1
cd $1
}
+
+function extract() {
+ unset REMOVE_ARCHIVE
+
+ if test "$1" = "-r"; then
+ REMOVE=1
+ shift
+ fi
+ if [[ -f $1 ]]; then
+ case $1 in
+ *.tar.bz2) tar xvjf $1;;
+ *.tar.gz) tar xvzf $1;;
+ *.tar.xz) tar xvJf $1;;
+ *.tar.lzma) tar --lzma -xvf $1;;
+ *.bz2) bunzip $1;;
+ *.rar) unrar x $1;;
+ *.gz) gunzip $1;;
+ *.tar) tar xvf $1;;
+ *.tbz2) tar xvjf $1;;
+ *.tgz) tar xvzf $1;;
+ *.zip) unzip $1;;
+ *.Z) uncompress $1;;
+ *.7z) 7z x $1;;
+ *) echo "'$1' cannot be extracted via >extract<";;
+ esac
+
+ if [[ $REMOVE_ARCHIVE -eq 1 ]]; then
+ echo removing "$1";
+ /bin/rm "$1";
+ fi
+
+ else
+ echo "'$1' is not a valid file"
+ fi
+}
+