batman-cli

1.1.2 • Public • Published

batman-cli

batman-cli is an advance command runner tool. Easy to maintain command runner. Easy to config via external json or js. Cross-platform cli tool, same command can be run on both window and unix based systems.

How to install

# As a global module 
npm i -g batman-cli
#################### 
# As a local module 
npm i batman-cli --save-dev

Prerequisite:

  • NodeJS es6(v6.10.1 lts or higher)

Demo:

Alt text

Youtube:

https://www.youtube.com/watch?v=DtZ6CLPxezM

How to initialize

batman init
#with config file
batman init --config "./configs/batman.config.js" 

How to write commands

{
    // translated command:  ng e2e --serve=false --config=./e2e/config/protractor.cucumber.conf.js -wu=false
    "e2e:cucumber": { //command name that batman will refer
        "command": "ng e2e", //actual command that batman will execute
        "desc": "Run e2e with cucumber", //description
        "params": [], //extra params user want to pass with command, like. --prod
        "envs": ["TEST=ENV", "TEST2=$MOCK"], //enviroment variables, it can take enviroment variable to build envs
        "options": { //options requires by actual command ex. ng
            "--serve": false,
            "--config": "./e2e/config/protractor.cucumber.conf.js",
            "-wu": "false"
        }
    },
    "new": "ng new testapp", //simple command without description
    "test": "ng test --code-coverage", // command without description
    "install": ["npm install", "Install node modules"] // command with description
}

How to configure

  1. Using .batmanrc.json in root of project
{
    //commands here
}
  1. Using batman.config.js in root of project
module.exports = {
  //commands here
}
  1. Using package.json
// Inside package.json
"batman": {
    // commands here
}
  1. Using external config inside package.json
// In package.json, config path from root of project
// Using path module, path.resolve(process.cwd(), config)
// Hack if needed
"batman": {
  "config": "./batman.config.js" //or batman.config.json(js and json both supported)
}
// batman.config.js or batman.config.json both will work
module.exports = {
  //same as above
}

NOTE: Path preference is batman.config.js, .batmanrc.json, package.json

How to use

  • Run or excute command
  1. As global module Install as global module, and simply use
batman run e2e:cucumber
# This will read your batman command config, parse batman commands 
# Once found e2e:cucumber, will execute. 
  1. As local module, using npm Install as local module, and simply configure package.json
//package.json
{
    //...rest of the prop
  "scripts": {
    "batman": "batman",
    "e2e:cucumber": "batman run e2e:cucumber"
  },
  "batman" : { 
    //Super configuration here
  }
}
# Run using npm 
npm run e2e:cucumber
# This will read your config, parse batman commands 
# Once found e2e:cucumber, will execute. 

Advance config

All the options and env supports enviroment variables, So user can replace value using $Enviroment variable

//Example
"e2e:cucumber": { //command name that batman will refer
    "command": "ng e2e", //actual command that batman will execute
    "desc": "Run e2e with cucumber", //description
    "params": [], //extra params user want to pass with command, like. --prod
    "envs": ["TEST=ENV", "TEST2=$MOCK"], //enviroment variables, it can take enviroment variable to build envs
    "options": { //options requires by actual command ex. ng
        "--serve": false,
        "--config": "./e2e/config/protractor.cucumber.conf.js",
        "-wu": "false"
    }
    }

Other commands

  • List Command
batman list #List commands only batman configured
batman list --npm #List all commands including local npm script

Release Note:

v1.1.2:

  • Pretty clean command print, fixed linter issue

v1.1.1:

  • updated Docs

v1.1.0:

Added command line options, Run npm commands

  • Added command line option to init config
  • Added command line option to run npm commands
  • Added command line option to list commands
  • Now user can execute npm commands using same batman run command

v1.0.0:

Simple command interface

  • Simplify command config
  • User can use command without any other parameters
  • Description in command using array
  • List commands- using batman list

v0.0.3:

Initial release- Stable woking module

  • fixed linter issue, added eslint

Links:

Package Sidebar

Install

npm i batman-cli

Weekly Downloads

6

Version

1.1.2

License

MIT

Unpacked Size

29.3 kB

Total Files

12

Last publish

Collaborators

  • deepakvishwakarma