'use strict' const Y = require('./y.js') function mkPosix (opts) { return ` command_not_found_${opts.isBash ? 'handle' : 'handler'}() { # Do not run within a pipe if test ! -t 1; then >&2 echo "${Y`command not found: ${'$1'}`}" return 127 fi if which npx > /dev/null; then echo "${Y`${'$1'} not found. Trying with npx...`}" >&2 else return 127 fi if ! [[ $1 =~ @ ]]; then npx --no-install "$@" else npx "$@" fi return $? }` } function mkFish (opts) { return ` function __fish_command_not_found_on_interactive --on-event fish_prompt functions --erase __fish_command_not_found_handler functions --erase __fish_command_not_found_setup function __fish_command_not_found_handler --on-event fish_command_not_found if which npx > /dev/null echo "${Y`${'$argv[1]'} not found. Trying with npx...`}" >&2 else return 127 end if string match -q -r @ $argv[1] npx $argv else npx --no-install $argv end end functions --erase __fish_command_not_found_on_interactive end` } module.exports = autoFallback function autoFallback (shell, fromEnv, opts) { if (shell.includes('bash')) { return mkPosix({isBash: true, install: opts.install}) } if (shell.includes('zsh')) { return mkPosix({isBash: false, install: opts.install}) } if (shell.includes('fish')) { return mkFish(opts) } if (fromEnv) { return autoFallback(fromEnv, null, opts) } console.error(Y`Only Bash, Zsh, and Fish shells are supported :(`) }
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
locales | Folder | 0755 |
|
|
CHANGELOG.md | File | 27.48 KB | 0644 |
|
LICENSE.md | File | 755 B | 0644 |
|
README.md | File | 6.31 KB | 0644 |
|
auto-fallback.js | File | 1.51 KB | 0644 |
|
child.js | File | 2.2 KB | 0644 |
|
get-prefix.js | File | 1.23 KB | 0644 |
|
index.js | File | 12.62 KB | 0644 |
|
libnpx.1 | File | 6.7 KB | 0644 |
|
package.json | File | 9.18 KB | 0644 |
|
parse-args.js | File | 7.1 KB | 0644 |
|
util.js | File | 390 B | 0644 |
|
y.js | File | 490 B | 0644 |
|