浏览代码

fix(coffee): fix completion bug on missing `coffee` command (#10759)

This commit fixes the error

  _coffee:49: bad math expression: operand expected at `< 2 '

when the coffee command is missing or the `coffee --version` command fails.

It also uses is-at-least to check for the cut-off version for suggesting
`--lint` and `--require` arguments, instead of using `cut` multiple times.

Fixes #10759
Marc Cornellà 2 年之前
父节点
当前提交
9350e1ff87
共有 1 个文件被更改,包括 6 次插入6 次删除
  1. 6 6
      plugins/coffee/_coffee

+ 6 - 6
plugins/coffee/_coffee

@@ -39,14 +39,14 @@
 #
 # ------------------------------------------------------------------------------
 
-local curcontext="$curcontext" state line ret=1 version opts first second third
+local curcontext="$curcontext" state line ret=1 version
+local -a opts
 typeset -A opt_args
-version=(${(f)"$(_call_program version $words[1] --version)"})
+version=(${(f)"$(_call_program version $words[1] --version)"}) || return ret
 version=${${(z)${version[1]}}[3]}
-first=$(echo $version|cut -d '.' -f 1)
-second=$(echo $version|cut -d '.' -f 2)
-third=$(echo $version|cut -d '.' -f 3)
-if (( $first < 2 )) &&  (( $second < 7 )) && (( $third < 3 ));then
+
+autoload -Uz is-at-least
+if ! is-at-least 1.6.3 "$version"; then
   opts+=('(-l --lint)'{-l,--lint}'[pipe the compiled JavaScript through JavaScript Lint]'
          '(-r --require)'{-r,--require}'[require a library before executing your script]:library')
 fi