#!/bin/zsh
setopt no_unset warn_create_global extended_glob
() {
local -a cmds
cmds=(
lock
show-inbox
root-terminal
terminal-wpa_cli
exit
adjust-brightness/{1,2,3,4,5,6,7,8,9,10}0%
)
cat <<<${(F)cmds}
}
() {
local svc
for svc in $HOME/chome/ssh/ssh-rc/out/s6-rc-source/*:master(N); do
printf "!c.urxvt ssh.%s ssh-t %s\n" \
$USER ${${svc:t}%:master}
done
}
() {
local svc
for svc in $HOME/chome/rcm-ssh/ssh-rc/out/runimage/*:master(N); do
printf "!c.urxvt rcm-ssh.%s ssh-t %s\n" \
$USER ${${${svc:t}%:master}#ssh.}
done
}
() {
local xsvc container
for xsvc in $HOME/chome/*/run/rc.extra/xsvc.*(/N); do
container=${xsvc:h:h:h:t}
printf "!xsvc-in-container-xpra %s %s\n" \
$container.$USER ${${xsvc:t}#xsvc.}
done
}
img_has_bins() {
local base p b found
base=$1
shift
for b in "$@"; do
found=0
for p in $base/{bin,usr/bin,usr/local/bin}; do
[[ -x $p/$b ]] && found=1 && break
done
((found)) || return 1
done
return 0
}
(){
local cntdir imgdir ignored
for cntdir in "$@"; do
if [[ -f $cntdir/data/fstab ]] && read imgdir ignored <$cntdir/data/fstab; then
if img_has_bins $imgdir zsh; then
img_has_bins $imgdir tmux && \
printf "!c.tmux %s\n" ${${cntdir:t}#container.}
#img_has_bins $imgdir tmux && \
# printf "container-urxvt/%s/tmux -2u new-session -s %s -A\n" \
# ${${cntdir:t}#container.} ${(qqq)${${cntdir:t}#container.}%.*}
#img_has_bins $imgdir abduco && \
# printf "abduco/%s/shell/zsh -li\n" ${${cntdir:t}#container.}
printf "container-urxvt/%s/zsh -li\n" ${${cntdir:t}#container.}
fi
fi
done
} /run/service/container.*.$USER
# vim: ft=zsh sts=4 ts=4 sw=4 noet