run=( mpd --no-daemon ) configfile=/etc/mpd.conf parse_mpd_config() { typeset -gA conf typeset -ga addr [[ -r $configfile ]] || exit 1 setopt extended_glob sed 's/[ ]*#.*//; /^$/d' <$configfile | while read key val; do [[ -n $key ]] || continue if [[ $key == bind_to_address ]]; then addr+=( $val ) else conf[$key]=${(Q)val} fi done reload_files+=( $configfile ) run+=( $configfile ) } # cond() { # [[ -e $configfile ]] # } do_check() { parse_mpd_config for a in $addr; do case a in (/*) zsv_check_unix || return $?;; esac done true } checkf do_check zsv_run_mpd() { if [[ -n $configfile ]]; then parse_mpd_config fi zsv_generic } # vim: ft=zsh noet ts=4 sts=4 sw=4