# Authors: grml-team (grml.org), (c) Michael Prokop <mika@grml.org>
# Bug-Reports: see http://grml.org/bugs/
# License: This file is licensed under the GPL v2.
-# Latest change: Son Apr 29 13:16:44 CEST 2007 [mika]
+# Latest change: Son Mai 27 19:12:26 CEST 2007 [mika]
################################################################################
# This file is sourced only for interactive shells. It
# should contain commands to set up aliases, functions,
fi
# }}}
+# check for potentially old files in 'completion.d' {{{
+ setopt extendedglob
+ xof=(/etc/zsh/completion.d/*~/etc/zsh/completion.d/_*(N))
+ if (( ${#xof} > 0 )) ; then
+ printf '\n -!- INFORMATION\n\n'
+ printf ' -!- %s file(s) not starting with an underscore (_) found in\n' ${#xof}
+ printf ' -!- /etc/zsh/completion.d/.\n\n'
+ printf ' -!- While this has been the case in old versions of grml-etc-core,\n'
+ printf ' -!- recent versions of the grml-zsh-setup have all these files rewritten\n'
+ printf ' -!- and renamed. Furthermore, the grml-zsh-setup will *only* add files\n'
+ printf ' -!- named _* to that directory.\n\n'
+ printf ' -!- If you added functions to completion.d yourself, please consider\n'
+ printf ' -!- moving them to /etc/zsh/functions.d/. Files in that directory, not\n'
+ printf ' -!- starting with an underscore are marked for automatic loading\n'
+ printf ' -!- by default (so that is quite convenient).\n\n'
+ printf ' -!- If there are files *not* starting with an underscore from an older\n'
+ printf ' -!- grml-etc-core in completion.d, you may safely remove them.\n\n'
+ printf ' -!- Delete the files for example via running:\n\n'
+ printf " rm ${xof}\n\n"
+ printf ' -!- Note, that this message will *not* go away, unless you yourself\n'
+ printf ' -!- resolve the situation manually.\n\n'
+ BROKEN_COMPLETION_DIR=1
+ fi
+ unset xof
+# }}}
+
# {{{ check for version/system
# check for versions (compatibility reasons)
if autoload is-at-least && is-at-least 2>/dev/null ; then
# check for user, if not running as root set $SUDO to sudo
(( EUID != 0 )) && SUDO='sudo' || SUDO=''
+ function salias() {
+ # creates an alias and precedes the command with
+ # sudo if $EUID is not zero.
+ local only=0 ; local multi=0
+ while [[ ${1} == -* ]] ; do
+ case ${1} in
+ (-o) only=1 ;;
+ (-a) multi=1 ;;
+ (--) shift ; break ;;
+ (-h)
+ printf 'usage: salias [-h|-o|-a] <alias-expression>\n'
+ printf ' -h shows this help text.\n'
+ printf ' -a replace '\'' ; '\'' sequences with '\'' ; sudo '\''.\n'
+ printf ' be careful using this option.\n'
+ printf ' -o only sets an alias if a preceding sudo would be needed.\n'
+ return 0
+ ;;
+ (*) printf "unkown option: '%s'\n" "${1}" ; return 1 ;;
+ esac
+ shift
+ done
+ if (( ${#argv} > 1 )) ; then
+ printf 'Too many arguments %s\n' "${#argv}"
+ return 1
+ fi
+ key="${1%%\=*}" ; val="${1#*\=}"
+ if (( EUID == 0 )) && (( only == 0 )); then
+ alias -- "${key}=${val}"
+ elif (( EUID > 0 )) ; then
+ (( multi > 0 )) && val="${val// ; / ; sudo }"
+ alias -- "${key}=sudo ${val}"
+ fi
+ return 0
+ }
+
# change directory to home on first invocation of zsh
# important for rungetty -> autologin
# Thanks go to Bart Schaefer!
# if we don't set $SHELL then aterm, rxvt,.. will use /bin/sh or /bin/bash :-/
export SHELL='/bin/zsh'
[[ -f ~/.terminfo/m/mostlike ]] && MYLESS='LESS=C TERMINFO=~/.terminfo TERM=mostlike less' || MYLESS='less'
- [[ -x /usr/bin/dircolors ]] && eval `dircolors -b`
+ [ -x $(which dircolors) ] && eval `dircolors -b`
# Search path for the cd comman
# cdpath=(.. ~)
# completion functions go to /etc/zsh/completion.d
# function files may be put into /etc/zsh/functions.d, from where they
# will be automatically autoloaded.
- [[ -d /etc/zsh/completion.d ]] && fpath+=( /etc/zsh/completion.d )
- if [[ -d /etc/zsh/functions.d ]] ; then
- fpath+=( /etc/zsh/functions.d )
- for func in /etc/zsh/functions.d/[^_]*[^~] ; do
- autoload -U ${func:t}
- done
+ if [ -n "$BROKEN_COMPLETION_DIR" ] ; then
+ print 'Warning: not setting completion directories because broken files have been found.'>&2
+ else
+ [[ -d /etc/zsh/completion.d ]] && fpath+=( /etc/zsh/completion.d )
+ if [[ -d /etc/zsh/functions.d ]] ; then
+ fpath+=( /etc/zsh/functions.d )
+ for func in /etc/zsh/functions.d/[^_]*[^~] ; do
+ autoload -U ${func:t}
+ done
+ fi
fi
# automatically remove duplicates from these arrays
if [[ -f ~/.zdirs ]] && [[ ${#dirstack[*]} -eq 0 ]]; then
dirstack=( ${(uf)"$(< ~/.zdirs)"} )
# "cd -" won't work after login by just setting $OLDPWD, so
- cd $dirstack[0] && cd $OLDPWD
+ [[ -d $dirstack[0] ]] && cd $dirstack[0] && cd $OLDPWD
fi
chpwd() {
builtin dirs -pl >! ~/.zdirs
alias 0 &>/dev/null || functions 0 &>/dev/null || alias 0='return 0'
# truecrypt; use e.g. via 'truec /dev/ice /mnt/ice' or 'truec -i'
- if [ -x /usr/sbin/truecrypt ] ; then
+ if [ -x $(which truecrypt) ] ; then
if isutfenv ; then
alias truec='truecrypt --mount-options "rw,sync,dirsync,users,uid=1000,gid=users,umask=077,utf8" '
else
alias acs='apt-cache search'
alias acsh='apt-cache show'
alias acp='apt-cache policy'
- [ -n "$SUDO" ] && alias adg="$SUDO apt-get dist-upgrade" || alias adg="apt-get dist-upgrade"
- [ -n "$SUDO" ] && alias agi="$SUDO apt-get install" || alias agi="apt-get install"
- [ -n "$SUDO" ] && alias ati="$SUDO aptitude install" || alias ati="aptitude install"
- [ -n "$SUDO" ] && alias ag="$SUDO apt-get upgrade" || alias ag="apt-get upgrade"
- [ -n "$SUDO" ] && alias au="$SUDO apt-get update" || alias au="apt-get update"
- [ -n "$SUDO" ] && alias up="$SUDO aptitude update ; $SUDO aptitude upgrade" || alias up="aptitude update ; aptitude upgrade"
+ salias adg="apt-get dist-upgrade"
+ salias agi="apt-get install"
+ salias ati="aptitude install"
+ salias ag="apt-get upgrade"
+ salias au="apt-get update"
+ salias -a up="aptitude update ; aptitude upgrade"
alias dbp='dpkg-buildpackage'
alias ge='grep-excuses'
fi
# sort installed Debian-packages by size
- if [ -x /usr/bin/grep-status ] ; then
+ if [ -x $(which grep-status) ] ; then
alias debs-by-size='grep-status -FStatus -sInstalled-Size,Package \
-n "install ok installed" | paste -sd " \n" | sort -rn'
fi
fi
# get_tw_cli has been renamed into get_3ware
- if [ -x /usr/bin/get_3ware ] ; then
+ if [ -x $(which get_3ware) ] ; then
get_tw_cli() {
echo 'Warning: get_tw_cli has been renamed into get_3ware. Invoking get_3ware for you.'>&2
get_3ware
fi
# I hate lacking backward compability, so provide an alternative therefore
- if ! [ -x /usr/sbin/apache2-ssl-certificate ] ; then
+ if ! [ -x $(which apache2-ssl-certificate) ] ; then
function apache2-ssl-certificate(){
print 'Debian does not ship apache2-ssl-certificate anymore (see #398520). :('
fi
}
- if [ -x /usr/sbin/915resolution ] ; then
+ if [ -x $(which 915resolution) ] ; then
alias 855resolution='echo -e "Please use 915resolution as resolution modify tool for Intel graphic chipset."; return -1'
fi
alias grml-version='cat /etc/grml_version'
- if [ -x /usr/sbin/rebuildfstab ] ; then
+ if [ -x $(which rebuildfstab) ] ; then
alias grml-rebuildfstab='rebuildfstab -v -r -config'
fi
+
+ if [ -x $(which grml-debootstrap) ] ; then
+ alias debian2hd='print "Installing debian to harddisk is possible via using grml-debootstrap." ; return 1'
+ fi
}
# }}}
# manzsh() { man zshall | $MYLESS -p $1 ; }
fi
- if [ -x /usr/bin/most ] ; then
+ if [ -x $(which most) ] ; then
# use "dchange <package-name>" to view Debian's changelog of the package:
dchange() {
if [ -r /usr/share/doc/${1}/changelog.Debian.gz ] ; then