diff options
author | Florian Pritz <bluewind@xinu.at> | 2011-08-02 18:12:06 +0200 |
---|---|---|
committer | Florian Pritz <bluewind@xinu.at> | 2011-08-02 18:12:06 +0200 |
commit | 6f202717b2035c356a47ddabef3a77697ecdc0a4 (patch) | |
tree | d026730841f0535b1fdfdf0ee8fbdd90ba16d9fd /.zshrc | |
parent | 58887bf6b5351f96429ce6b428b7bb7f9ede7b6b (diff) | |
download | dotfiles-6f202717b2035c356a47ddabef3a77697ecdc0a4.tar.gz dotfiles-6f202717b2035c356a47ddabef3a77697ecdc0a4.tar.xz |
improve chroot functions; misc changes
Signed-off-by: Florian Pritz <bluewind@xinu.at>
Diffstat (limited to '.zshrc')
-rw-r--r-- | .zshrc | 91 |
1 files changed, 75 insertions, 16 deletions
@@ -414,23 +414,79 @@ __genchroot() { sudo btrfs subvolume snapshot "$chrootdir/root" "$copydir" } +__chrootalias() { + chroot="" + chroot_arch="" + case $1 in + 32*) + chroot_arch=32 + case $1 in + 32) chroot=extra-i686;; + 32t) chroot=testing-i686;; + 32s) chroot=staging-i686;; + esac + ;; + 64*) + chroot_arch=64; + case $1 in + 64) chroot=extra-x86_64;; + 64t) chroot=testing-x86_64;; + 64s) chroot=staging-x86_64;; + 64ml) chroot=multilib-x86_64;; + 64mlt) chroot=multilib-testing-x86_64;; + esac + ;; + *) + chroot=$1 + case $1 in + *-i686) chroot_arch=32;; + *-x86_64|multilib*) chroot_arch=64;; + esac + esac + + if [[ -z $chroot || -z $chroot_arch ]]; then + echo "failed to determine chroot" + return 1 + fi + + # create chroot if necessary + if [[ ! -d "$__CHROOTS/$chroot/root" ]]; then + case $chroot in + multilib*) chroot_cmd=${chroot%%-x86_64};; + *) chroot_cmd=$chroot;; + esac + sudo ${chroot_cmd}-build -r "$__CHROOTS" || true + fi + +} + +chkill() { + __chrootalias $1 || return + for dir in "$__CHROOTS/$chroot/"*(/); do + sudo btrfs subvolume delete $dir + done + sudo rm -rf $__CHROOTS/$chroot +} + chshell() { - chrootdir="$__CHROOTS/$1" + __chrootalias $1 || return + chrootdir="$__CHROOTS/$chroot" copydir="$chrootdir/$USER" [ -d "$copydir" ] || __genchroot - linux${1[1,2]} sudo mkarchroot -r ${2:-/bin/bash} "$copydir" + linux${chroot_arch} sudo mkarchroot -r ${2:-/bin/bash} "$copydir" } chbuild() { - chrootdir="$__CHROOTS/$1" - linux${1[1,2]} sudo makechrootpkg -r "$chrootdir" -- -f - cat namcap.log + __chrootalias $1 || return + chrootdir="$__CHROOTS/$chroot" + linux${chroot_arch} sudo makechrootpkg -r "$chrootdir" -- -f + [[ -e namcap.log ]] && cat namcap.log } chinstall() { - chroot=$1; shift + __chrootalias $1 || return; shift chrootdir="$__CHROOTS/$chroot" - linux${chroot[1,2]} sudo makechrootpkg -r "$chrootdir" -I "$@" + linux${chroot_arch} sudo makechrootpkg -r "$chrootdir" -I "$@" } chclean() { @@ -439,7 +495,8 @@ chclean() { chclean "$(basename "$chrootdir")" done else - chrootdir="$__CHROOTS/$1" + __chrootalias $1 || return + chrootdir="$__CHROOTS/$chroot" copydir="$chrootdir/$USER" [[ -d "$copydir" ]] && sudo btrfs subvolume delete "$copydir" fi @@ -447,8 +504,9 @@ chclean() { } chrshell() { - chrootdir="$__CHROOTS/$1" - linux${1[1,2]} sudo mkarchroot -r ${2:-bash} "$chrootdir/root" + __chrootalias $1 || return + chrootdir="$__CHROOTS/$chroot" + linux${chroot_arch} sudo mkarchroot -r ${2:-bash} "$chrootdir/root" } chupdate() { @@ -458,9 +516,10 @@ chupdate() { done else for id in "$@"; do - chrootdir="$__CHROOTS/$id" + __chrootalias $id || return + chrootdir="$__CHROOTS/$chroot" echo ":: Updating $id" - linux${id[1,2]} sudo mkarchroot -u "$chrootdir/root" -- --noconfirm + linux${chroot_arch} sudo mkarchroot -u "$chrootdir/root" -- --noconfirm echo ":: Cleaning up ..." chclean $id done @@ -489,8 +548,8 @@ regcheck() { # }}} # History {{{ export HISTFILE=~/.zsh/histfile -export HISTSIZE=100000 -export SAVEHIST=100000 +export HISTSIZE=200000 +export SAVEHIST=200000 readonly HISTFILE # }}} # Other ZSH options {{{ @@ -604,14 +663,14 @@ alias g='git' # python is too long to type... alias q='python' alias e='exec' -alias b='blaze' +#alias b='blaze' #alias t='todo.sh -d $HOME/.config/todo.cfg' alias xc="xclip" alias xcp="xclip -o | fb" alias nsl='nslookup' -alias hgrep="history 0 | grep" +alias hgrep="history 0 | mpgrep" alias ncmpc='ncmpc -c' alias youtube='youtube-dl -b ' |