|
@@ -71,7 +71,7 @@ _global_commands=(
|
|
|
'bin:Displays the location of the yarn bin folder'
|
|
|
'remove:Remove installed package from dependencies updating package.json'
|
|
|
'upgrade:Upgrades packages to their latest version based on the specified range'
|
|
|
- 'upgrade-interactive'
|
|
|
+ 'upgrade-interactive:Interactively upgrade packages'
|
|
|
)
|
|
|
|
|
|
_yarn_commands_scripts() {
|
|
@@ -81,9 +81,21 @@ _yarn_commands_scripts() {
|
|
|
}
|
|
|
|
|
|
_yarn_scripts() {
|
|
|
- local -a scripts
|
|
|
- scripts=($(yarn run --json 2>/dev/null | sed -E '/Commands available|possibleCommands/!d;s/.*Commands available from binary scripts: ([^"]+)".*/\1/;s/.*"items":\[([^]]+).*/\1/;s/[" ]//g' | tr , '\n' | sed -e 's/:/\\:/g'))
|
|
|
- _describe 'script' scripts
|
|
|
+ local -a commands binaries scripts
|
|
|
+ local -a scriptNames scriptCommands
|
|
|
+ local i runJSON
|
|
|
+
|
|
|
+ runJSON=$(yarn run --json 2>/dev/null)
|
|
|
+ binaries=($(sed -E '/Commands available/!d;s/.*Commands available from binary scripts: ([^"]+)".*/\1/;s/.*"items":\[([^]]+).*/\1/;s/[" ]//g;s/:/\\:/g;s/,/\n/g' <<< "$runJSON"))
|
|
|
+ scriptNames=($(sed -E '/possibleCommands/!d;s/.*"items":\[([^]]+).*/\1/;s/[" ]//g;s/:/\\:/g;s/,/\n/g' <<< "$runJSON"))
|
|
|
+ scriptCommands=("${(@f)$(sed -E '/possibleCommands/!d;s/.*"hints":\{([^}]+)\}.*/\1/;s/"[^"]+"://g;s/:/\\:/g;s/","/\n/g;s/(^"|"$)//g' <<< "$runJSON")}")
|
|
|
+
|
|
|
+ for (( i=1; i <= $#scriptNames; i++ )); do
|
|
|
+ scripts+=("${scriptNames[$i]}:${scriptCommands[$i]}")
|
|
|
+ done
|
|
|
+
|
|
|
+ commands=($scripts $binaries)
|
|
|
+ _describe 'command' commands
|
|
|
}
|
|
|
|
|
|
_yarn_global_commands() {
|
|
@@ -240,7 +252,8 @@ _yarn() {
|
|
|
|
|
|
run)
|
|
|
_arguments \
|
|
|
- '1: :_yarn_scripts'
|
|
|
+ '1: :_yarn_scripts' \
|
|
|
+ '*:: :_default'
|
|
|
;;
|
|
|
|
|
|
tag)
|
|
@@ -255,6 +268,11 @@ _yarn() {
|
|
|
'*:: :->team_args'
|
|
|
;;
|
|
|
|
|
|
+ upgrade-interactive)
|
|
|
+ _arguments \
|
|
|
+ '--latest:use the version tagged latest in the registry:'
|
|
|
+ ;;
|
|
|
+
|
|
|
version)
|
|
|
_arguments \
|
|
|
'--new-version:version:' \
|
|
@@ -266,6 +284,10 @@ _yarn() {
|
|
|
_arguments \
|
|
|
'1:query:_files'
|
|
|
;;
|
|
|
+
|
|
|
+ *)
|
|
|
+ _default
|
|
|
+ ;;
|
|
|
esac
|
|
|
;;
|
|
|
esac
|