fi
# run latest
install-my-scripts
- btrbk-run "$@" | pee cat "systemd-cat -t btrbk-run"
- $active && ser enable btrbk.timer
+ btrbk-run "$@" |& pee cat "systemd-cat -t btrbk-run"
+ if $active; then
+ ser enable btrbk.timer
+ fi
}
bfg() { java -jar /a/opt/bfg-1.12.14.jar "$@"; }
c /
# run latest
install-my-scripts
- switch-mail-host $1 $HOSTNAME | pee cat "systemd-cat -t switch-mail-host"
+ switch-mail-host pull $1 |& pee cat "systemd-cat -t switch-mail-host"
}
bpush() {
[[ $1 ]] || return 1
c /
# run latest
install-my-scripts
- switch-mail-host $HOSTNAME $1 | pee cat "systemd-cat -t switch-mail-host"
+ switch-mail-host push $1 |& pee cat "systemd-cat -t switch-mail-host"
}
lipush() {
# note, i had --delete-excluded, but that deletes all files in --exclude-from on
p=(/a/bin /a/exe /a/h /a/c /p/c/machine_specific/linode{,.hosts} /a/opt/{emacs,emacs-debianstable,mu})
a="-ahviSAXPH --specials --devices --delete --relative --exclude-from=/p/c/li-rsync-excludes"
ret=0
- m rsync $@ $a ${p[@]} /p/c/machine_specific/l2 root@l2.b8.nz:/ || ret=$?
- m rsync $@ $a ${p[@]} /p/c/machine_specific/li root@li.b8.nz:/ || ret=$?
- m rsync $@ -ahviSAXPH root@iankelling.org:/a/h/proposed-comments/ /a/h/proposed-comments || ret=$?
+ m rsync "$@" $a ${p[@]} /p/c/machine_specific/l2 root@l2.b8.nz:/ || ret=$?
+ m rsync "$@" $a ${p[@]} /p/c/machine_specific/li root@li.b8.nz:/ || ret=$?
+ m rsync "$@" -ahviSAXPH root@iankelling.org:/a/h/proposed-comments/ /a/h/proposed-comments || ret=$?
return $ret
}
lipushnoe() { # noe = noemacs. for running faster.
- rsync $@ --delete-excluded -ahviSAXPH --specials --devices --delete --relative \
+ rsync "$@" --delete-excluded -ahviSAXPH --specials --devices --delete --relative \
--exclude-from=/p/c/li-rsync-excludes /a/bin /a/exe /a/h /a/c /p/c/machine_specific/li root@li:/
}
dup() {
local ran_d
ran_d=false
+ system-status _
case $PS1 in
*DISTRO-BEGIN!*|*DISTRO!*)
+ pushd /
/b/ds/distro-begin || return $?
+ popd
ran_d=true
;;&
*DISTRO-END!*|*DISTRO!*)
+ pushd
/b/ds/distro-end || return $?
+ popd
ran_d=true
;;&
*CONFLINK*)
fdup() {
local -A installed updated
local p
- fdroidcl update
+ # tried putting this in go buildscript cronjob,
+ # but it failed with undefined: os.UserCacheDir. I expect its due to
+ # an environment variable missing, but its easier just to stick it here.
+ m go get -u mvdan.cc/fdroidcl || return 1
+ m fdroidcl update
if fdroidcl search -u | grep ^org.fdroid.fdroid; then
fdroidcl install org.fdroid.fdroid
sleep 5
- fdroidcl update
+ m fdroidcl update
fi
for p in $(fdroidcl search -i| grep -o "^\S\+"); do
installed[$p]=true
done
for p in ${fdroid_pkgs[@]}; do
if ! ${installed[$p]:-false}; then
- fdroidcl install $p
+ m fdroidcl install $p
# sleeps are just me being paranoid since replicant has a history of crashing when certain apps are installed
sleep 5
fi
done
for p in ${!installed[@]}; do
if ! ${updated[$p]:-true}; then
- fdroidcl install $p
+ m fdroidcl install $p
sleep 5
fi
done
firefox -P default "$@" >/dev/null 2>&1
}
-
gitian() {
git config user.email ian@iankelling.org
}
-
# at least in flidas, things rely on gpg being gpg1
gpg() {
command gpg2 "$@"
--suppress-cc=self "$@"
}
-
hstatus() {
# do git status on published repos.
c /a/bin/githtml
done
}
-
idea() {
/a/opt/idea-IC-163.7743.44/bin/idea.sh "$@" &r
}
+ilog() {
+ chan=${1:-#fsfsys}
+ # use * instead of -r since that does sorted order
+ ssh root@iankelling.org "cd /var/lib/znc/moddata/log/iank/freenode/$chan && hr && for x in *; do echo \$x; cat \$x; hr; done" | less +G
+}
+
o() {
if type gvfs-open &> /dev/null ; then
gvfs-open "$@"
journalctl -n 10000 -f "$@" | jfilter
}
jr() { journalctl "$@" | jfilter | less ; }
-jrf() { journalctl -f "$@" | jfilter; }
+jrf() { journalctl -n 200 -f "$@" | jfilter; }
kff() { # keyboardio firmware flash
firefox /tmp/mdtest.html
}
-
-
mo() { xset dpms force off; } # monitor off
+myirc() {
+ chan=${1:-fsf-office}
+ # use * instead of -r since that does sorted order
+ ssh root@iankelling.org "cd /var/lib/znc/moddata/log/iank/freenode/#$chan; grep '\<iank.*' *"
+}
+
net-dev-info() {
e "lspci -nnk|gr -iA2 net"
lspci -nnk|gr -iA2 net
e "s lshw -C network"
hr
s lshw -C network
-
}
nk() {
resolvcat() {
local f
+ m s nscd -i hosts
f=/etc/resolv.conf
echo $f:; ccat $f
- hr; echo dnsmasq is $(systemctl is-active dnsmasq)
+ hr; m ser status dnsmasq | cat
+ hr; s ss -lpn 'sport = 53'
+ #hr; echo dnsmasq is $(systemctl is-active dnsmasq)
f=/var/run/dnsmasq/resolv.conf
hr; echo $f:; ccat $f
+ hr; m grr '^ *servers-file *=' /etc/dnsmasq.conf /etc/dnsmasq.d
f=/etc/dnsmasq-servers.conf
hr; echo $f:; ccat $f
}
+rcat() {
+ resolvcat | less
+}
# only run on MAIL_HOST. simpler to keep this on one system.
r2eadd() { # usage: name url
scss-lint -c /a/opt/thoughtbot-guides/style/sass/.scss-lint.yml "$@"
}
+skbrc() {
+ sk -e 2120,245 /b/ds/brc /b/ds/brc2
+}
+
skaraoke() {
local tmp out
out=${2:-${1%.*}.sh}
-[1246AaCfGgKkMNnqsTtVvXxYy])
args+=("$1"); shift
;;
- -[bcDEeFIiLlmOopQRSWw])
+ -[bcDEeFIiLlmOopQRSWw]*)
# -oOption etc is valid
if (( ${#1} >= 3 )); then
args+=("$1"); shift
else
dorsync=true
# use this weird yes thing to ensure we know ssh succeeded
- tmp=$(command ssh "${args[@]}" "$remote" "if test -e /a/bin/ds/.bashrc -a -L .bashrc; then echo yes; fi") || return
+ if ! tmp=$(command ssh "${args[@]}" "$remote" "if test -e /a/bin/ds/.bashrc -a -L .bashrc; then echo yes; fi"); then
+ echo failed sl test. doing plain ssh -v
+ command ssh -v "${args[@]}" "$remote"
+ fi
if [[ $tmp == yes ]]; then
type=a
else
type=b
fi
fi
+ if [[ $type == b ]] && $dorsync; then
+ if ! RSYNC_RSH="ssh ${args[*]}" rsync -rptL /b/ds/sl/.iank "$remote":; then
+ echo WARNING: rsync failed. remove $sshinfo to try again
+ fi
+ fi
if $dorsync || ! $haveinfo; then
sshinfo=/p/sshinfo/$now$type"$remote"
touch $sshinfo
# Theres a couple ways to do this. im not sure whats best,
# but relying on bash 4.4+ escape quoting seems most reliable.
command ssh "${args[@]}" "$remote" \
- BRC=t bash -c '"\"\$@\""' bash ${@@Q}
+ BRC=t bash -c '.\ .iank/.bashrc\;"\"\$@\""' bash ${@@Q}
+ elif [[ ! -t 0 ]]; then
+ # This case is when commands are being piped to ssh.
+ # Normally, no bashrc gets sourced.
+ # But, since we are doing all this, lets source it because we can.
+ cat <(echo . .iank/.bashrc) - | command ssh "${args[@]}" "$remote" BRC=t bash
else
- # -t gives us an interactive shell for normal ssh. -l makes us use the rcfile when piping commands.
- command ssh -t "${args[@]}" "$remote" BRC=t INPUTRC=.iank/.inputrc bash --rcfile .iank/.bashrc -l
+ command ssh -t "${args[@]}" "$remote" BRC=t INPUTRC=.iank/.inputrc bash --rcfile .iank/.bashrc
fi
else
- BRC=t command ssh "$remote" "$@"
+ if [[ -t 0 ]]; then
+ BRC=t command ssh "${args[@]}" "$remote" ${@@Q}
+ else
+ command ssh "${args[@]}" "$remote" BRC=t bash -l
+ fi
fi
}
sss() { # ssh solo
- ssh -oControlMaster=no -oControlPath=/ "$@"
+ sl -oControlMaster=no -oControlPath=/ "$@"
}
# kill off old shared socket then ssh
ssk() {
- local -a opts=()
- while [[ $1 == -* ]]; do
- opts+=("$1")
- shift
- done
- m pkill -f "^ssh: /tmp/ssh_mux_${USER}_${1#*@}_22_"
- m ssh "${opts[@]}" "$@"
+ m ssh -O exit "$@"
+ m sl "$@"
}
# plain limited ssh
ssh() {
fi
s systemctl stop $vpn_service@$1
}
-
-
+vpnoffc() { # vpn off client
+ ser stop openvpn-nn@client
+}
+vpnc() {
+ ser start openvpn-nn@client
+}
vspicy() { # usage: VIRSH_DOMAIN