summaryrefslogtreecommitdiffstats
path: root/.zshrc
diff options
context:
space:
mode:
authorFlorian Pritz <bluewind@xinu.at>2011-08-02 18:12:06 +0200
committerFlorian Pritz <bluewind@xinu.at>2011-08-02 18:12:06 +0200
commit6f202717b2035c356a47ddabef3a77697ecdc0a4 (patch)
treed026730841f0535b1fdfdf0ee8fbdd90ba16d9fd /.zshrc
parent58887bf6b5351f96429ce6b428b7bb7f9ede7b6b (diff)
downloaddotfiles-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--.zshrc91
1 files changed, 75 insertions, 16 deletions
diff --git a/.zshrc b/.zshrc
index 806a16b..2dda789 100644
--- a/.zshrc
+++ b/.zshrc
@@ -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 '