On Tue, Sep 06, 2016 at 04:09:49PM -0400, Anthony Coulter wrote:
> Regarding Jiri's suggestion: Here is a diff that makes
> `rcctl ls all' only list executable files with valid service
> names.
> 
> This diff also fixes two problems with my original submission:
> 1. The use of `[' instead of `[[' causes filename expansion to
>    take place on the right-hand side of the comparison; you get
>    different results depending on which directory you're sitting
>    in when you test. I have switched to `[[' to fix that problem.
> 2. There was a stray closing brace that somehow did not cause
>    problems in testing.

That's not enough. It cannot start with a digit either.
I'm working on a better diff.

> Index: usr.sbin/rcctl/rcctl.sh
> ===================================================================
> RCS file: /open/anoncvs/cvs/src/usr.sbin/rcctl/rcctl.sh,v
> retrieving revision 1.104
> diff -u -p -r1.104 rcctl.sh
> --- usr.sbin/rcctl/rcctl.sh   30 Jul 2016 06:25:21 -0000      1.104
> +++ usr.sbin/rcctl/rcctl.sh   6 Sep 2016 20:03:33 -0000
> @@ -53,8 +53,8 @@ ls_rcscripts()
>  
>       cd /etc/rc.d && set -- *
>       for _s; do
> -             [[ ${_s} = *.* ]] && continue
> -             [ ! -d "${_s}" ] && echo "${_s}"
> +             [[ "${_s}" != +([_0-9A-Za-z]) ]] && continue
> +             [ -x "${_s}" ] && echo "${_s}"
>       done
>  }
>  
> @@ -182,7 +182,7 @@ svc_is_meta()
>  svc_is_special()
>  {
>       local _svc=$1
> -     [ -n "${_svc}" ] || return
> +     [[ "${_svc}" = +([_0-9A-Za-z]) ]] || return
>  
>       local _cached _ret
>  
> 

-- 
Antoine

Reply via email to