commit fa47f437b028295b88544049463e81276cabdae6
parent 4f8e617d62f8cc758075c35c7bfd7c7d055f369a
Author: Jacob R. Edwards <jacobouno@protonmail.com>
Date: Sat, 26 Sep 2020 19:15:03 -0700
Rework aliases
aliases are now structured modularly where you can include sets of aliases and
functions easily.
Diffstat:
7 files changed, 154 insertions(+), 131 deletions(-)
diff --git a/aliases/.config/aliases b/aliases/.config/aliases
@@ -1,130 +0,0 @@
-# shell functions
-
-if [ -f "$XDG_CONFIG_HOME/aliases.private" ]; then
- . "$XDG_CONFIG_HOME/aliases.private"
-fi
-
-# add flags, change name, etc:
-alias pkill="pkill -x"
-alias la="ls -A"
-alias cmd="command"
-alias mupdf="mupdf -I"
-alias doas="doas -- "
-alias man="man "
-alias vim="vim -p"
-alias startx="startx -- -retard"
-alias getpass="command gp"
-
-# use EREs:
-alias sed="sed -E"
-alias grep="egrep"
-
-# short:
-alias f="$EDITOR"
-alias l="$PAGER"
-alias x="startx"
-
-# clipboard:
-alias grab="xclip -selection clipboard"
-alias push="grab -out"
-
-# package management (openbsd):
-alias pkg_add="pkg_add -xV"
-alias pa="doas pkg_add"
-alias pu="doas pkg_add -u"
-alias pd="doas pkg_delete"
-pq() { pkglocate "${@}*:*" | cut -d: -f1 | uniq ;}
-alias pi="pkg_info"
-
-# git:
-alias gP="git push"
-alias gp="git pull"
-alias ga="git add"
-alias gc="git commit"
-alias gd="git diff"
-alias gdc="gd --cached"
-alias gcc="git rev-list HEAD --count"
-
-# mpc:
-alias m="mpc"
-alias mp="m play"
-alias mt="m toggle"
-alias mk="m prev"
-alias mj="m next"
-alias ml="m playlist"
-alias ms="m search"
-alias mP="m searchplay any"
-alias ma="m add"
-
-# get mpd settings
-mpdconfig() { eval echo `grep $1 $XDG_CONFIG_HOME/mpd/mpd.conf | sed -E 's/.*"(.*)\"/\1/g'` ;}
-
-# grep mpc playlists
-mgrep() { grep -h $@ `mpdconfig playlist_directory`/* | sort -u ;}
-
-# add current song to playlist(s)
-mato() {
- local track="`mpc current -f "%file%"`"
- while [ $# -gt 0 ]; do
- echo "$track" >> `mpdconfig playlist_directory`/$1.m3u
- shift
- done
-}
-
-# mps wrapper to work in states directory
-mps() {
- local dir="`mpdconfig music_directory`/.states"
- case $#
- in
- 0) ls -1 "$dir";;
- 1) command mps -h;;
- 2) command mps $1 $dir/$2;;
- esac
-}
-
-# search all history for `regex`
-hs() { fc -nl 0 | egrep "$1" ;}
-
-# unset proxy variables
-np() { unset ALL_PROXY; unset HTTP_PROXY ;}
-
-# sort human readable du output by size
-dush() { du -sh $@ | sort -h ;}
-
-# redo last command when typing out of order
-k() { fc -s ;}
-
-# reinitialize shell
-self() { exec $0 ;}
-
-wQ() { webq "$*" ;}
-
-unalias r
-r() { fc -s "$*" ;}
-
-# edit executable in PATH
-fe() { f `which $@` ;}
-
-# use feed within FEED_DIR.
-fed() { (builtin cd $FEED_DIR && feed $@) ;}
-
-# record directories visited.
-cd() { builtin cd $@ && echo $PWD >> $PWDLOG ;}
-
-# filter chdir history keeping original line numbers.
-lcd() {
- awk -vhome="^$HOME" '$0 != last && $0 != ENVIRON["HOME"] {last=$0; \
- sub(home, "~", $0); printf "%d\t%s\n", FNR, $0 }' $PWDLOG
-}
-
-# redo specified chdir.
-rcd() {
- local dir=`head -n ${1:?No index specified} $PWDLOG | tail -1`
- cd ${dir:?Non-existent entry} && echo "$dir"
-}
-
-# redo last chdir which matches regex.
-rcd() {
- local d="$(egrep $@ $PWDLOG | tail -1)"
- cd ${d:?No match}
-}
diff --git a/aliases/.config/aliases/git b/aliases/.config/aliases/git
@@ -0,0 +1,9 @@
+# git aliases
+
+alias gP="git push"
+alias gp="git pull"
+alias ga="git add"
+alias gc="git commit"
+alias gd="git diff"
+alias gdc="gd --cached"
+alias gcc="git rev-list HEAD --count"
diff --git a/aliases/.config/aliases/main b/aliases/.config/aliases/main
@@ -0,0 +1,79 @@
+# shell functions
+
+. $ALIASES/util
+
+include util
+include private
+include mpc
+include git
+
+# reload aliases
+alias load="include main"
+
+# add flags, change name, etc:
+alias pkill="pkill -x"
+alias la="ls -A"
+alias cmd="command"
+alias mupdf="mupdf -I"
+alias doas="doas -- "
+alias man="man "
+alias vim="vim -p"
+alias startx="startx -- -retard"
+alias getpass="command gp"
+
+# use EREs:
+alias sed="sed -E"
+alias grep="egrep"
+
+# short:
+alias f="$EDITOR"
+alias l="$PAGER"
+alias x="startx"
+
+# clipboard:
+alias grab="xclip -selection clipboard"
+alias push="grab -out"
+
+# search all history for `regex`
+hs() { fc -nl 0 | egrep "$1" ;}
+
+# unset proxy variables
+np() { unset ALL_PROXY; unset HTTP_PROXY ;}
+
+# sort human readable du output by size
+dush() { du -sh $@ | sort -h ;}
+
+# redo last command when typing out of order
+k() { fc -s ;}
+
+wQ() { webq "$*" ;}
+
+unalias r
+r() { fc -s "$*" ;}
+
+# edit executable in PATH
+fe() { f `which $@` ;}
+
+# use feed within FEED_DIR.
+fed() { (builtin cd $FEED_DIR && feed $@) ;}
+
+# record directories visited.
+cd() { builtin cd $@ && echo $PWD >> $PWDLOG ;}
+
+# filter chdir history keeping original line numbers.
+lcd() {
+ awk -vhome="^$HOME" '$0 != last && $0 != ENVIRON["HOME"] {last=$0; \
+ sub(home, "~", $0); printf "%d\t%s\n", FNR, $0 }' $PWDLOG
+}
+
+# redo specified chdir with it's index.
+rcdi() {
+ local dir=`head -n ${1:?No index specified} $PWDLOG | tail -1`
+ cd ${dir:?Non-existent entry} && echo "$dir"
+}
+
+# redo last chdir which matches regex.
+rcd() {
+ local d="$(egrep $@ $PWDLOG | tail -1)"
+ cd ${d:?No match}
+}
diff --git a/aliases/.config/aliases/mpc b/aliases/.config/aliases/mpc
@@ -0,0 +1,33 @@
+# mpc aliases
+
+alias m="mpc"
+alias mp="m play"
+alias mt="m toggle"
+alias mk="m prev"
+alias mj="m next"
+alias ml="m playlist"
+alias ms="m search"
+alias mP="m searchplay any"
+alias ma="m add"
+
+# get mpd settings
+mpdconfig() { eval echo `grep $1 $XDG_CONFIG_HOME/mpd/mpd.conf | sed -E 's/.*"(.*)\"/\1/g'` ;}
+
+# grep mpc playlists
+mgrep() { grep -h $@ `mpdconfig playlist_directory`/* | sort -u ;}
+
+# add current song to playlist(s)
+mato() {
+ local track="`mpc current -f "%file%"`"
+ local dir=`mpdconfig playlist_directory`
+ while [ $# -gt 0 ]; do
+ # note it's not anchored.
+ fgrep -q "$track" "$dir/$1.m3u"
+ if [ $? -eq 1 ]; then
+ echo "$track" >> $dir/$1.m3u
+ else
+ echo "warning: '$1': Already contains track." 1>&2
+ fi
+ shift
+ done
+}
diff --git a/aliases/.config/aliases/pkg b/aliases/.config/aliases/pkg
@@ -0,0 +1,8 @@
+# OpenBSD package management aliases
+
+alias pkg_add="pkg_add -xV"
+alias pa="doas pkg_add"
+alias pu="doas pkg_add -u"
+alias pd="doas pkg_delete"
+pq() { pkglocate "${@}*:*" | cut -d: -f1 | uniq ;}
+alias pi="pkg_info"
diff --git a/aliases/.config/aliases/util b/aliases/.config/aliases/util
@@ -0,0 +1,23 @@
+# shell utility functions
+
+verb() {
+ echo "$@" 1>&2
+}
+
+warn() {
+ verb "$0: ${@?warn: No message given}"
+}
+
+# err(status, [message])
+err() {
+ local status=${1:?No exit status.}; shift
+ warn "${@:-undefined error}"
+ exit $status
+}
+
+# include an alias module, does not halt processing non-existent file like `.'.
+include() {
+ local include="${ALIASES:?unset}/$1"
+ test -f "$include" || { warn "'$include': File non-existent."; return 1 ;}
+ . "$include"
+}
diff --git a/ksh/.config/ksh.kshrc b/ksh/.config/ksh.kshrc
@@ -2,7 +2,8 @@
set -o vi
-[ -f $XDG_CONFIG_HOME/aliases ] && . $XDG_CONFIG_HOME/aliases
+ALIASES="$XDG_CONFIG_HOME/aliases"
+[ -f "$ALIASES/main" ] && . "$ALIASES/main"
. ~/.profile
MAIL="/var/mail/$USER"