# $Abso: abso-files/files/profile,v b24d01482c5e 2013/07/25 10:10:54 mat $ # Fichier de configuration Bash (/usr/local/etc/absoconf/bash_profile) # vim:syntax=sh filetype=sh sts=2 sw=2 foldmethod=marker: #---[ Variables d'environnement ]---{{{ : ${ABSODIR="/usr/local/etc/absoconf"} : ${INPUTRC="$ABSODIR/inputrc"} : ${SYSSCREENRC="$ABSODIR/screenrc"} : ${VIMINIT="source $ABSODIR/vimrc"} HOSTNAME=$(hostname) if [ `expr -- $HOSTNAME : '.*\.absolight\.net'` -ne 0 ] then HOST=${HOSTNAME%.absolight.net} elif [ `expr -- $HOSTNAME : '.*\.absolight\.com'` -ne 0 ] then HOST=${HOSTNAME%.absolight.com} else HOST=$(hostname -s) fi EDITOR='vim' PAGER='less' BLOCKSIZE='K' CLICOLOR_FORCE='xterm-color' : ${LANG='fr_FR.ISO8859-15'} LESS='-r -e -i -P?f%f : .?m (%i/%m) .?lt-- lignes %lt-%lb?L/%L. .?e-- [FIN] ?x-- Suivant\: %x .:-- ?pB%pB\%..%t ' P4CONFIG=.p4config HISTCONTROL=ignoreboth:erasedups if [ ! -z "$SUDO_USER" ] then HISTFILE=${HISTFILE}_${SUDO_USER} fi HISTFILESIZE=10000 HISTSIZE=10000 PORTS_DBDRIVER=bdb1_btree export INPUTRC SYSSCREENRC VIMINIT EDITOR PAGER BLOCKSIZE CLICOLOR_FORCE LESS P4CONFIG HISTCONTROL HISTFILESIZE HISTSIZE PORTS_DBDRIVER #---}}} #---[ Auto-completion ]---{{{ if [ -e /usr/local/etc/bash_completion ] then . /usr/local/etc/bash_completion fi [[ $PS1 && -f /usr/local/share/bash-completion/bash_completion.sh ]] && \ source /usr/local/share/bash-completion/bash_completion.sh #---}}} #---[ (root|user) actions ]---{{{ if [ $EUID -eq 0 ]; then if [ -f /usr/local/share/examples/pkgtools/bash/complete.sample ]; then . /usr/local/share/examples/pkgtools/bash/complete.sample fi USERCOLOR='\[\e[31m\]' USERTITLE="#" else USERCOLOR='\[\e[36m\]' USERTITLE="" fi #---}}} #---[ console, screen ou pas ? ]---{{{ if [ ${TERM#cons} != $TERM ] then TITLE="" DEBPROMPT='+--' FINPROMPT='+-' else if [ "${TERM#screen}" != $TERM ] then TITLE='\ek'$USERTITLE'${MYHOST:-$HOST}\e\134\e]0;\u@${MYHOSTNAME:-$HOSTNAME}:$PWD\007' # Si on a pas le termcap screen-256color, on utilise juste screen. if ! grep -q screen-256color /etc/termcap then export TERM=screen fi else TITLE='\ek'$USERTITLE'${MYHOST:-$HOST}\e\134\e]0;'$USERTITLE'${MYHOSTNAME:-$HOSTNAME}\007' fi if [ "${LANG%UTF-8}" != $LANG ] then # '╭──' # '╰─' # Pour pas casser bash, on lui met avec des \u. #DEBPROMPT=$'\u256d\u2500\u2500' #FINPROMPT=$'\u2570\u2500' # Et comme les \u marchent pas partout, on fait avec des \x... DEBPROMPT=$'\xe2\x95\xad\xe2\x94\x80\xe2\x94\x80' FINPROMPT=$'\xe2\x95\xb0\xe2\x94\x80' else DEBPROMPT='\[\e)0\016\]\[\e[m\]lqq\[\017\]' FINPROMPT='\[\e)0\016\]\[\e[m\]mq\[\017\]' fi fi #---}}} #---[ Prompt ]---{{{ if [ ! -z "$MYHOSTNAME" ]; then : ${PS1HOST=$MYHOSTNAME} else : ${PS1HOST=$HOST} fi : ${HOSTCOLOR='\[\e[34m\]'} __abso_bash_ext() { return 0 } PS1=$TITLE$DEBPROMPT'('$USERCOLOR'\u\[\e[m\]@'$HOSTCOLOR$PS1HOST'\[\e[m\]:\[\e[32m\]$PWD\[\e[m\])-$(__abso_bash_ext)(\[\e[1m\]\t\[\e[m\])\ \n'$FINPROMPT'\[\e[m\]\$ \[\e[m\]' PS2=$FINPROMPT'> \[\e[m\]' #---}}} #---[ Alias ]---{{{ di() { if [ -d CVS ] then cvs diff "$@" |cdiff else if [ -d .svn ] then svn diff "$@" |cdiff else hgdi "$@" |cdiff fi fi } hgdi () { if [ "x$1" = "x" ] then cd `hg root` fi for i in $(hg status -marn "$@") do if [ ! -f "$i" ] then diff -ubwd <(hg cat "$i") /dev/null else diff -ubwd <(hg cat "$i") "$i" fi done } #---[ ls -D or not ]---{{{ ls -D / > /dev/null 2>&1 if [ $? -eq 1 ] then lx() { \ls -FGl "$@" | grep ^d ; \ls -FGl "$@" | grep -v '^d\|^t'; } # ls avec répertoires en premier alias ls='ls -FG' alias l='lx' alias la='lx -A' else ls -D > /dev/null 2>&1 if [ $? -eq 1 ] then # Faut que je sorte un patch :-) lx() { \ls -FGl "$@" | grep ^d ; \ls -FGl "$@" | grep -v '^d\|^t'; } # ls avec répertoires en premier alias ls='ls -FG' alias l='lx' alias la='lx -A' else alias ls='ls -DFG' alias l='ls -l' alias la='ls -al' fi fi #---}}} alias rm='rm -i' alias mv='mv -i' alias cp='cp -pi' alias vi='vim' alias v='vim' alias which='type -path' alias cdi='cdiff|cat' alias screen='\screen -e "²&" -dR' alias macscreen='\screen -e "&@" -dR' alias scrx='\screen -e "²&" -x' alias macscrx='\screen -e "&@" -x' alias cdsrc='cd $(make -VWRKSRC)' alias d='dig +noall +answer' # dumb & dumber : alias cd..='cd ..' alias more='less' alias moer='more' alias mroe='more' [ -x /usr/local/sbin/ntraceroute ] && alias traceroute="ntraceroute -uOAM" #---}}} #---[ Options de Bash ]---{{{ shopt -s cdspell shopt -s checkhash shopt -s checkwinsize shopt -s cmdhist shopt -s extglob shopt -s histreedit shopt -s lithist if [ ${BASH_VERSINFO[0]} -ge 4 ] then shopt -s globstar fi #---}}} #---[ Ports things ]---{{{ UNAMERP=($(/usr/bin/uname -pr)) ARCH=${UNAMERP[1]} OSREL=${UNAMERP[0]/-*/} OSREL=${OSREL/./-} if [ -f /var/db/pkg/local.sqlite ] then PKGVER=pkgng else PKGVER=default fi PACKAGES=/usr/ports/packages/$OSREL-$ARCH-$PKGVER/ PACKAGESITE=http://pkg.absolight.net/packages/$OSREL-$ARCH-$PKGVER/ export PACKAGES PACKAGESITE #---}}} #---[ Jedi trick ssh-agent et screen ]---{{{ if [ $EUID -ne 0 ]; then NEW_AUTH_SOCK=~/.ssh/agent-socket if [ ! -d ~/.ssh ]; then /bin/mkdir ~/.ssh /bin/chmod 700 ~/.ssh fi # si il y a qqchose dedans et que c'est un socket, on alias parce qu'on est un ssh maitre, et on met le AUTH_SOCK a la bonne valeur if [ -n "$SSH_AUTH_SOCK" -a -S "$SSH_AUTH_SOCK" -a "$SSH_AUTH_SOCK" != "$NEW_AUTH_SOCK" ]; then ln -sf $SSH_AUTH_SOCK $NEW_AUTH_SOCK export SSH_AUTH_SOCK=$NEW_AUTH_SOCK fi # si il y a qqchose dedans et que c'est pas un socket, c'est qu'on a un vieux AUTH_SOCK, et donc, on remplace if [ -n "$SSH_AUTH_SOCK" -a ! -S "$SSH_AUTH_SOCK" ]; then export SSH_AUTH_SOCK=$NEW_AUTH_SOCK fi # si y'a rien, et qu'un lien existe, on remplit :) if [ -z "$SSH_AUTH_SOCK" -a -L $NEW_AUTH_SOCK ]; then export SSH_AUTH_SOCK=$NEW_AUTH_SOCK fi fi #---}}} #---[ Fonctions pour cacher cvs et hg a root ]---{{{ if [ $UID -eq 0 ] then cvs() { echo "faut utiliser cvsspy, cvsboz, cvsmat ou /usr/bin/cvs"; } hg() { if [ -z $MYHG ] then echo "faut utiliser hgspy, hgboz, hgmat ou /usr/local/bin/hg directement" else $MYHG "$@" fi } fi cvsspy() { /usr/bin/cvs -d :pserver:spyou@cvs.absolight.com:/home/cvs/cvs/absolight "$@"; } cvsmat() { /usr/bin/cvs -d :pserver:mat@cvs.absolight.com:/home/cvs/cvs/absolight "$@"; } cvsboz() { /usr/bin/cvs -d :pserver:bozze@cvs.absolight.com:/home/cvs/cvs/absolight "$@"; } hgspy() { HGUSER="Bruno Spiquel " /usr/local/bin/hg "$@"; } hgboz() { HGUSER="Bruno Zuzze " /usr/local/bin/hg "$@"; } hgmat() { HGUSER="Mathieu Arnold " /usr/local/bin/hg "$@"; } #---}}}