X-Git-Url: https://git.grml.org/?a=blobdiff_plain;f=etc%2Fzsh%2Fzshrc;h=92a96343da54ff8af0e6aa392c70d5f1c5c32755;hb=215e3f544c360d8bd1651b706fd6088bc1597d3f;hp=91b39d721604fdb4f3ea99047a0901c06f0e7276;hpb=5478ef70c0c343b4b120830c4c7e07e345bd85e3;p=grml-etc-core.git diff --git a/etc/zsh/zshrc b/etc/zsh/zshrc index 91b39d7..92a9634 100644 --- a/etc/zsh/zshrc +++ b/etc/zsh/zshrc @@ -3,7 +3,7 @@ # Authors: grml-team (grml.org), (c) Michael Prokop # Bug-Reports: see http://grml.org/bugs/ # License: This file is licensed under the GPL v2. -# Latest change: Mon Jun 04 23:21:01 CEST 2007 [mika] +# Latest change: Die Jun 12 14:00:47 CEST 2007 [mika] ################################################################################ # This file is sourced only for interactive shells. It # should contain commands to set up aliases, functions, @@ -92,7 +92,7 @@ # check for user, if not running as root set $SUDO to sudo (( EUID != 0 )) && SUDO='sudo' || SUDO='' - function salias() { + salias() { # creates an alias and precedes the command with # sudo if $EUID is not zero. local only=0 ; local multi=0 @@ -349,7 +349,7 @@ fi function compdef { } fi - is4 && autoload -U zed # use ZLE editor to edit a file or function + is4 && autoload -U zed # use ZLE editor to edit a file or function is4 && for mod in complist deltochar mathfunc ; do zmodload -i zsh/${mod} 2>/dev/null || print "Notice: no ${mod} available :(" @@ -820,7 +820,7 @@ Please use the wodim binary instead' ; return 1" # I hate lacking backward compability, so provide an alternative therefore if ! [ -x $(which apache2-ssl-certificate) ] ; then - function apache2-ssl-certificate(){ + apache2-ssl-certificate(){ print 'Debian does not ship apache2-ssl-certificate anymore (see #398520). :(' print 'You might want to take a look at Debian the package ssl-cert as well.' @@ -919,7 +919,7 @@ grmlcomp() { # zstyle ':completion:*' expand prefix suffix # automatic rehash? Credits go to Frank Terbeck -# function my_accept () { +# my_accept() { # local buf # [[ -z ${BUFFER} ]] && zle accept-line && return # buf=( ${(z)BUFFER} ) @@ -987,7 +987,7 @@ grmlcomp() { # {{{ grmlstuff grmlstuff() { # people should use 'grml-x'! - function startx() { + startx() { if [ -e /etc/X11/xorg.conf ] ; then [ -x /usr/bin/startx ] && /usr/bin/startx || /usr/X11R6/bin/startx else @@ -998,7 +998,7 @@ If you want to use startx anyway please call \"/usr/bin/startx\"." fi } - function xinit() { + xinit() { if [ -e /etc/X11/xorg.conf ] ; then [ -x /usr/bin/xinit ] && /usr/bin/xinit || /usr/X11R6/bin/xinit else @@ -1105,6 +1105,22 @@ If you want to use xinit anyway please call \"/usr/bin/xinit\"." _dchange() { _files -W /usr/share/doc -/ } compdef _dchange dchange + # use "dnews " to view Debian's NEWS file of the package: + dnews() { + if [ -r /usr/share/doc/${1}/NEWS.Debian.gz ] ; then + most /usr/share/doc/${1}/NEWS.Debian.gz + else + if [ -r /usr/share/doc/${1}/NEWS.gz ] ; then + most /usr/share/doc/${1}/NEWS.gz + else + echo "No NEWS file for package $1 found, sorry." + return 1 + fi + fi + } + _dnews() { _files -W /usr/share/doc -/ } + compdef _dnews dnews + # use "uchange " to view upstream's changelog of the package: uchange() { if [ -r /usr/share/doc/${1}/changelog.gz ] ; then @@ -1255,6 +1271,49 @@ If you want to use xinit anyway please call \"/usr/bin/xinit\"." setxkbmap us && echo 'Done' || echo 'Failed' } + # set up an ipv6 tunnel + ipv6-tunnel() { + case $1 in + start) + if ifconfig sit1 2>/dev/null | grep -q 'inet6 addr: 2002:.*:1::1' ; then + print 'ipv6 tunnel already set up, nothing to be done.' + print 'execute: "ifconfig sit1 down ; ifconfig sit0 down" to remove ipv6-tunnel.' ; return 1 + else + [ -n "$PUBLIC_IP" ] || local PUBLIC_IP=$(ifconfig $(route -n | awk '/^0\.0\.0\.0/{print $8; exit}') | \ + awk '/inet addr:/ {print $2}' | tr -d 'addr:') + [ -n "$PUBLIC_IP" ] || { print 'No $PUBLIC_IP set and could not determine default one.' ; return 1 } + local IPV6ADDR=$(printf "2002:%02x%02x:%02x%02x:1::1" $(print ${PUBLIC_IP//./ })) + print -n "Setting up ipv6 tunnel $IPV6ADDR via ${PUBLIC_IP}: " + ifconfig sit0 tunnel ::192.88.99.1 up + ifconfig sit1 add "$IPV6ADDR" && print done || print failed + fi + ;; + status) + if ifconfig sit1 2>/dev/null | grep -q 'inet6 addr: 2002:.*:1::1' ; then + print 'ipv6 tunnel available' ; return 0 + else + print 'ipv6 tunnel not available' ; return 1 + fi + ;; + stop) + if ifconfig sit1 2>/dev/null | grep -q 'inet6 addr: 2002:.*:1::1' ; then + print -n 'Stopping ipv6 tunnel (sit0 + sit1): ' + ifconfig sit1 down ; ifconfig sit0 down && print done || print failed + else + print 'No ipv6 tunnel found, nothing to be done.' ; return 1 + fi + ;; + *) + print "Usage: ipv6-tunnel [start|stop|status]">&2 ; return 1 + ;; + esac + } + + # run dhclient for wireless device + iwclient() { + salias dhclient "$(wavemon -d | awk '/device/{print $2}')" + } + # Switching shell safely and efficiently? http://www.zsh.org/mla/workers/2001/msg02410.html # bash() { # NO_SWITCH="yes" command bash "$@"