# < FUNCTIONS ## BACKUP function etcbackup() { BACKUPDIR=$HOME/dropbox/backup HOSTNAME=$(hostname) FILE=$1 if [ -f $FILE ] then FILENAME=$(echo $FILE | sed 's/\///' | sed 's/\//_/g') cp -v $FILE $BACKUPDIR/$HOSTNAME/$FILENAME else echo $FILE does not exist fi } ## DOTFILES function update_dot() { for i in $HOME/dropbox/dot/[a-zA-Z]*; do if [ -f $i ]; then echo file $i base=`basename $i` dst=$HOME/.$base bak=$HOME/.${base}_bak case $base in vimrc|zshrc|*tgz) echo nothing $i ;; *) if [ -L $dst ]; then rm $dst else mv $dst $bak fi ln -s $i $dst ;; esac else if [ -d $i ]; then echo dir $i base=`basename $i | sed 's/_/\//'` dst=$HOME/.$base bak=$HOME/.${base}_bak case $base in "vim") echo nothing $i ;; *) if [ -e $dst ]; then if [ -L $dst ]; then rm $dst else mv $dst $bak fi fi ln -s $i $dst ;; esac else echo unknown $i fi fi done } ## PDF/LATEX function mkpdf() { pdflatex -shell-escape $1 # latex --output-format=pdf $1 name=`echo $1 | sed 's/.tex//'` EXT=(aux log) for i in $EXT; do rm -v $name.$i done } function gsmerge() { target=$1 echo "target: $target" sleep 1 shift /usr/bin/gs \ -sDEVICE=pdfwrite \ -dCompatibilityLevel=1.4 \ -dNOPAUSE \ -dBATCH \ -sPAPERSIZE=a4 \ -sOUTPUTFILE=$target $* } function gsmerge_medium() { target=$1 echo "target: $target" sleep 1 shift /usr/bin/gs \ -sDEVICE=pdfwrite \ -dPDFSETTINGS=/ebook \ -dCompatibilityLevel=1.4 \ -dNOPAUSE \ -dBATCH \ -sPAPERSIZE=a4 \ -sOutputFile=$target $* } ## USABILITY function lvim() { noglob vim $(echo $1 | awk -F":" '{ print $1" +"$2 }' ) } function mkcd() { mkdir $1 cd $1 } function cpwd() { pwd >! /tmp/pwd } function ppwd() { cd "`cat /tmp/pwd`" } function cp2wd() { cp $@ "`cat /tmp/pwd`" } function publish() { [ -f $1 ] || return DIR=`dirname $1` FILE=`basename $1` mute pushd $DIR scp $FILE pool:public_html/ echo "http://www-pool.math.tu-berlin.de/~runge/$FILE" echo "http://www-pool.math.tu-berlin.de/~runge/$FILE"|xcp mute popd } function securium { port=44350 chromium --proxy-server="socks://localhost:$port" & exit } ## ZSH refresh() { source $HOME/.zshrc } #Decompress any given compressed file extract () { if [ -f $1 ] ; then case $1 in *.tar.bz2) tar xvjf $1 ;; *.tar.gz) tar xvzf $1 ;; *.bz2) bunzip2 $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 "don't know how to extract '$1'..." ;; esac else echo "'$1' is not a valid file!" fi } extract_to() { if [ -f $2 ] ;then echo "Extracting to '$2'" local out = $2 else echo "Extracting to '$( pwd )'" local out = $( pwd ) fi if [ -f $1 ] ;then echo "'$1'" else echo "'$1' is not a valid file!" fi } ## compress stuff function tar_tgz { tar cvfz $1.tgz $1 } function tar_tbz { tar cvfj $1.tbz $1 } function tar_tlz { tar --lzma -cvf $1.tlz $1 } ##CRYPTSETUP AND LUKS function lopen () { case $1 in "music") sudo cryptsetup luksOpen /dev/disk/by-uuid/b2a8c89e-22f3-4e16-bdd3-ef4bcac8ed4f $1 ;; "photos") sudo cryptsetup luksOpen /dev/disk/by-uuid/b2a8c89e-22f3-4e16-bdd3-ef4bcac8ed4f $1 ;; esac sudo mount /dev/mapper/$1 /mnt/$1 } function lclose () { mountpoint /mnt/$1 notmounted=$($?) echo $notmounted if [[ $notmounted != 0 ]] ; then sudo umount /mnt/$1 sudo cryptsetup luksClose $1 fi } # FUNCTIONS >