# ~/.bashrc # # This file is sourced by all *interactive* bash shells on startup, # including some apparently interactive shells such as scp and rcp # that can't tolerate any output. So make sure this doesn't display # anything or bad things will happen ! # Test for an interactive shell. There is no need to set anything # past this point for scp and rcp, and it's important to refrain from # outputting anything in those cases. if [[ $- != *i* ]] ; then # Shell is non-interactive. Be done now! return fi [[ -f /etc/profile.d/bash-completion.sh ]] \ && source /etc/profile.d/bash-completion.sh ### alias ### alias ..='cd ..' alias cl='clear' alias ll='ls -lhav --group-directories-first' alias ls='ls -v --color=auto --group-directories-first' alias df='df -h' alias du='du -hc' alias mv='mv -iv' alias cp='cp -v' alias rm='rm -v --preserve-root' alias su='/bin/su' alias halt='sudo halt' alias reboot='sudo reboot' alias e='sudo -E emerge -avl' alias patch='echo -e "Dry run...\n"; patch --dry' alias rpatch='\patch --no-backup-if-mismatch' alias vipk="sudo vi /etc/portage/package.keywords/main.keywords" alias vipu="sudo vi /etc/portage/package.use/main.use && sort /etc/portage/package.use/main.use -o /etc/portage/package.use/main.use" alias vipn="sudo vi /etc/portage/package.unmask/main.unmask" alias vipm="sudo vi /etc/portage/package.mask/main.mask" alias vippm="sudo vi /usr/portage/profiles/package.mask" alias vipum="sudo vi /etc/portage/profile/package.use.mask && sort /etc/portage/profile/package.use.mask -o /etc/portage/profile/package.use.mask" alias vimc="sudo vi /etc/make.conf" alias vip="sudo vi /etc/profile" alias vib="sudo vi ~/.bashrc" alias vix="sudo vi /etc/X11/xorg.conf" alias vixd="sudo vi ~/.Xdefaults" alias srcenv="sudo /usr/sbin/env-update && source /etc/profile && source ~/.bashrc" alias makedirty='sudo chown -Rv --preserve-root dirtyepic:dirtyepic .' alias needrestart="lsof | grep 'DEL.*lib' | cut -f 1 -d ' ' | sort -u" alias greptree='find /usr/portage -maxdepth 3 -name "*.ebuild" -print0 | xargs -0 grep -T' export ECHANGELOG_USER="Ryan Hill " ### env ### cp2dev() { scp $* dirtyepic@dev.gentoo.org:/home/dirtyepic/ } cp2web() { scp $* dirtyepic@dev.gentoo.org:/home/dirtyepic/public_html/ } vieb() { sudo -E vi "$(getebuild $@)"; } vich() { sudo vi "$(dirname $(getebuild $@))/ChangeLog"; } viec() { sudo vi "/usr/portage/eclass/${1}.eclass"; } cdeb() { cd "$(dirname $(getebuild $@))"; } ebmd() { cat "$(dirname $(getebuild $@))/metadata.xml"; } ebenv() { pkgver=$(expr "${1}" : '.*\(.*-[0-9].*\)') pkgcat=${1%%/*}; pkgcat=${pkgcat%%${pkgver}} pkgname=${1##*/}; pkgname=${pkgname%%${pkgver}} pkgenvs=/etc/portage/env/$(getcat ${pkgname})/${pkgname} for f in ${pkgenvs}*; do if [[ -f ${f} ]]; then echo "${f}:" cat "${f}" fi done } ebclean() { ebmanifest "$@" && sudo ebuild "$(getebuild $@)" clean; } ebmanifest() { sudo ebuild "$(getebuild $@)" manifest; } ebfmanifest() { sudo ebuild "$(getebuild $@)" manifest --force; } ebsetup() { ebmanifest "$@" && sudo -E ebuild "$(getebuild $@)" setup; } ebunpack() { ebmanifest "$@" && sudo -E ebuild "$(getebuild $@)" unpack; } ebprepare() { ebmanifest "$@" && sudo -E ebuild "$(getebuild $@)" prepare; } ebconfigure() { ebmanifest "$@" && sudo -E ebuild "$(getebuild $@)" configure; } ebcompile() { ebmanifest "$@" && sudo -E ebuild "$(getebuild $@)" compile; } ebtest() { ebmanifest "$@" && sudo -E ebuild "$(getebuild $@)" test; } ebinstall() { ebmanifest "$@" && sudo -E ebuild "$(getebuild $@)" install; } ebmerge() { ebmanifest "$@" && sudo -E ebuild "$(getebuild $@)" merge; } libdeps() { if [ ! $# -eq 1 ]; then echo "Usage: libdeps " else qlist -oe "$1" | scanelf -L -n -q -F '%n #F' | tr , ' ' | xargs qfile -C | sort -u fi } ecommit() { bash -n *.ebuild || return 1 echangelog ${1:+"$*"} || return 1 rcommit } rcommit() { declare msg if [[ -n $* ]]; then msg="$*" echo "Using msg from command-line" >&2 else msg=$(perl &2 return 1 fi echo "Parsed msg from ChangeLog" >&2 fi echo "----------" >&2 echo "$msg" >&2 echo "----------" >&2 repoman commit -m "$msg" || return 1 } scrub_patch() { sed -i \ -e '/^index /d' \ -e '/^new file mode /d' \ -e '/^Index:/d' \ -e '/^=========/d' \ -e '/^RCS file:/d' \ -e '/^retrieving/d' \ -e '/^diff/d' \ -e '/^Files .* differ$/d' \ -e '/^Only in /d' \ -e '/^Common subdirectories/d' \ -e '/^+++/s:\t.*::' \ -e '/^---/s:\t.*::' \ "$@" }