diff --git a/aliases/void b/aliases/void index 81a3fb5..434c236 100644 --- a/aliases/void +++ b/aliases/void @@ -62,19 +62,32 @@ sv() { } sv-manage() { - action=$1 - shift + local action service svdir + zparseopts -D -E d:=dir -dir:=dir + svdir=${dir[2]:-${SVDIR:-/var/service}} + if [[ -z $1 ]]; then + action=list + else + action=$1 + shift + fi case "$action" in add) for service in "$@"; do - ln -s ${SVDIR_TEMPLATES:-/etc/sv}/${service:s#/##} ${SVDIR:-/var/service} + ln -s ${SVDIR_TEMPLATES:-/etc/sv}/${service:s#/##} ${svdir} done ;; remove|rm) for service in "$@"; do - rm ${SVDIR:-/var/service}/${service:s#/##} + rm ${svdir}/${service:s#/##} done ;; + list|ls) + sv status ${svdir}/* | sed " + s@${svdir}/@@ + s@run@\x1b[1;92mrun\x1b[0m@g + s@down@\x1b[1;31mdown\x1b[0m@g + " | column -t esac }