Skip to content

Instantly share code, notes, and snippets.

@vinicioslc
Forked from ChugunovRoman/.bashrc
Last active July 26, 2023 21:23
Show Gist options
  • Save vinicioslc/81443bfbb6c3af04ca3a043d6e6870f7 to your computer and use it in GitHub Desktop.
Save vinicioslc/81443bfbb6c3af04ca3a043d6e6870f7 to your computer and use it in GitHub Desktop.
Alias for npm run with auto completing a npm scripts from package.json from current directory.
## NR npm alias
alias nr="npm run"
_npm_scripts() {
# check package.json file in current directory
if [ ! -f ./package.json ]; then
return
fi
local scripts="$(node -e 'const { scripts } = require(`./package.json`); if (!scripts) process.exit(); let a = Object.entries(scripts); for (let s in scripts) { console.log(s); }' | grep -E ^$2)"
local -a toks
local tmp
if [ -z "$scripts" ]; then
return;
fi
while read -r tmp; do
toks+=( "$tmp" )
done <<< "$scripts"
if [[ ${#toks[@]} -ne 0 ]]; then
COMPREPLY+=( "${toks[@]}" )
fi
}
complete -F _npm_scripts nr
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment