git-bash-shell

2.5.0 • Public • Published

git-bash-shell

NPM version AppVeyor Codecov David

Use Git Bash as cross-platform shell for Windows

Why

  • Inject Bash or Cmder to Windows shell cmd.exe.
  • Add POSIX style features for Node child process:
    • Add Shebang support for executable file.
    • Add POSIX style path support for executable file and options.shell.
    • Support for environment variable PATHEXT.
  • Add POSIX style path support for Node file system.
  • Add POSIX style path support for these npm config items:
  • Add Windows code page support for executable file in %windir% directory (Target encoding must be set in process.env.LANG).

Install

npm install git-bash-shell --global
exit 0

Please restart your terminal after install. If Node version < 8, please install util.promisify

Usage

env command

Add env as a prefix for command in terminal or npm package scripts

// package.json
"scripts"{
  "show-shell": "env echo $SHELL",
}

Node API

require('git-bash-shell');
const spawnSync = require('cross-spawn').sync;
spawnSync('echo $(git --version)', {
  shell: '/bin/sh',
  stdio: 'inherit',
});

npm config

You can update config by command:

npm config set shell /bin/bash
npm config set script-shell /bin/sh

Or edit .npmrc file in directory of package.json:

echo shell=/bin/bash>>.npmrc
echo script-shell=/bin/sh>>.npmrc

Default Shell

  • When options.shell set to true for child process, process.env.SHELL will be used, process.env.ComSpec is used as a fallback if process.env.SHELL is unavailable.
  • When a npm config value set to shell, it will inject to cmd.exe

Package Sidebar

Install

npm i git-bash-shell

Weekly Downloads

20

Version

2.5.0

License

MIT

Unpacked Size

81.6 kB

Total Files

24

Last publish

Collaborators

  • gucong