summaryrefslogtreecommitdiff
path: root/archive/.bash_defns
diff options
context:
space:
mode:
Diffstat (limited to 'archive/.bash_defns')
-rw-r--r--archive/.bash_defns152
1 files changed, 152 insertions, 0 deletions
diff --git a/archive/.bash_defns b/archive/.bash_defns
new file mode 100644
index 00000000..2ce59444
--- /dev/null
+++ b/archive/.bash_defns
@@ -0,0 +1,152 @@
+# This file was for core aliases & functions which we wanted available in
+# shell commands run from Emacs. However, nowadays I mostly use
+# Eshell, so I moved these back to .shinit. The following code was in
+# init.el, and .bashrc *sourced* .bash_defns (BASH_ENV *not* set there):
+#
+# (when-let ((bash (executable-find "bash")))
+# (setq shell-file-name "bash")
+# (setenv "SHELL" bash)
+# (setenv "BASH_ENV" (expand-file-name "~/.bash_defns")))
+
+shopt -s expand_aliases
+
+# --- aliases
+
+alias soffice-pdf="soffice --headless --convert-to pdf"
+alias new-login-shell="exec su -l $USER" # get new UNIX group without relog
+alias b="bts --mbox show"
+
+# alias develacc='sudo machinectl shell spw@develacc \
+# $(sudo enter-develacc /bin/sh -c "getent passwd spw | cut -d: -f7")'
+# alias develaccr='sudo machinectl shell root@develacc \
+# $(sudo enter-develacc /bin/sh -c "getent passwd root | cut -d: -f7")'
+
+alias whitenoise="echo -en \"\033]0;whitenoise\a\";\
+ cvlc --quiet --loop ~/annex/media/sounds/R*.ogg"
+
+alias host-suite-build-deps='mk-build-deps -ir -s sudo -t \
+ "apt-get --no-install-recommends"'
+alias sid-build-deps='mk-build-deps -ir -s sudo -t \
+ "apt-get -o Debug::pkgProblemResolver=yes -t sid --no-install-recommends"'
+alias bts-policy="bts user debian-policy@packages.debian.org \
+ , package debian-policy , "
+alias dak-rdeps="ssh mirror.ftp-master.debian.org dak rm -Rn"
+alias afsid="apt-file --filter-suites unstable"
+alias dinstall="curl https://ftp-master.debian.org/dinstall.status;echo -n 'Right now: ';date -u '+%a %b %d %T %Z %Y (%s)'"
+# use with care, in order for this to actually provide a security advantage
+alias update-debian-known-hosts="scp master.debian.org:/etc/ssh/ssh_known_hosts ~/src/dotfiles/.ssh/known_hosts_debian"
+# from dgit-user(7), this pushes a non-native package through sbuild
+# without an orig.tar for the version in the first changelog entry.
+# Useful for sbuilding an unreleased version of a package I maintain
+# upstream
+alias sbuild-prerelease="sbuild --dpkg-source-opts='-Zgzip -z1 --format=1.0 -sn' --no-run-lintian"
+
+# alias does not call `git develacc` because we want manual
+# verification of what is to be pushed (i.e. `git diff
+# master..develacc/develacc-iris` to check patch queue is sane)
+alias push-develacc-dotfiles-branch="git push \
+ -f origin develacc/develacc-$(hostname -s):develacc-$(hostname -s)"
+
+alias spin-this-host-now='(cd /usr/local/propellor && sudo ./propellor)'
+
+# --- more powerful aliases built with shell functions
+
+secs () {
+ for i in $(seq $1 -1 1); do
+ echo $i
+ sleep 1
+ done
+ echo 0
+}
+
+package-plan-unpack () {
+ ~/src/dotfiles/scripts/debian/package-plan-unpack "$1"; cd "/tmp/$1"
+}
+
+# install package(s) and immediately mark as auto installed, so it
+# will get cleaned up by the next autoclean.
+# --no-install-recommends is needed as otherwise packages are manually
+# installed beyond those specified on the command line
+install-as-auto () {
+ if [[ $EUID -ne 0 ]]; then
+ sudo apt-get --no-install-recommends install "$@"
+ sudo apt-mark auto "$@"
+ else
+ apt-get --no-install-recommends install "$@"
+ apt-mark auto "$@"
+ fi
+}
+
+# PDF word count
+pdfwords () {
+ pdftotext "$1" - | wc -w
+}
+
+# also see soffice-pdf alias above
+soffice-pdf-all () {
+ for f in *.doc *.docx; do
+ soffice --headless --convert-to pdf "$f"
+ done
+}
+
+# Debian archive processing logs
+alias tail-dak="ssh ftp-master.debian.org tail -F \
+ /srv/ftp-master.debian.org/log/current"
+alias tail-queued="ssh ssh.upload.debian.org tail -F \
+ /srv/upload.debian.org/queued/run/log"
+grep-dak () {
+ ssh ftp-master.debian.org grep "$@" /srv/ftp-master.debian.org/log/current
+}
+grep-queued () {
+ ssh ssh.upload.debian.org grep "$@" /srv/upload.debian.org/queued/run/log
+}
+
+# sometimes a remote SSH session cannot get at my forwarded SSH agent
+# because an unwanted instance of gpg-agent running on the remote host
+# gets in the way. this is a way to kill off that unwanted agent. we
+# also need to restart the multiplexed SSH connection to get agent
+# forwarding working again. I think this problem is mostly caused by
+# the fact that I use gnupg as my SSH agent
+kill-remote-gpg () {
+ ssh "$1" 'rm -f $XDG_RUNTIME_DIR/gnupg/*'
+ ssh -O exit "$1"
+}
+
+# build debs from a Linux kernel source tree *without* calling `make clean`.
+#
+# The -dbg deb takes some time to build. To get rid of it when it's
+# not needed: scripts/config --disable DEBUG_INFO
+bindeb-pkg () {
+ ver="$(make kernelversion)"
+ date="$(date +%Y%m%d+%H%M)"
+ arch="$(dpkg --print-architecture)"
+ make -j$((2 * $(nproc))) bindeb-pkg \
+ LOCALVERSION=-spw \
+ KDEB_PKGVERSION=$ver-$date \
+ "$@"
+ echo "sudo apt-get install \
+../linux-{image,headers}-$ver-spw_$ver-${date}_$arch.deb"
+}
+
+# --- host-specific aliases/functions
+
+# not ftp-master.debian.org
+
+# this is useful for processing removal requests
+# (credits to Mark Wooding)
+#
+# alternative, by me, but involves spawning another process or two:
+#
+# command -v dak >/dev/null \
+# || alias dak="perl -MString::ShellQuote \
+# -we'system qw(ssh -t ftp-master.debian.org dak), shell_quote @ARGV'"
+if ! command -v dak >/dev/null; then
+ dak () {
+ local i
+ local c=
+ for i; do # implicit "in $@"
+ c="$c '${i/\'/\'\\\'\'}'"
+ done
+ ssh -t ftp-master.debian.org dak "$c"
+ }
+fi