Skip to content
master
Go to file
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
bin
 
 
lib
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

Madrun License NPM version Dependency Status Build Status Coverage Status

CLI tool to run multiple npm-scripts in a madly comfortable way. Can be used together with redrun.

Install

npm i madrun -g

Usage

First thing you should do is create .madrun.js file. This can be done using:

madrun --init

madrun will import all scripts to .madrun.js, and add it to .npmignore.

When update .madrun.js, adding new scripts, run madrun --init again, to update package.json, so you can use:

npm run new-script-name

Then you can run madrun without args to see list of a scripts. Or run:

madrun <script>

To run specified script.

Completion

You can enable tab-completion of npm scripts similar to npm's completion using:

madrun-completion >> ~/.bashrc
madrun-completion >> ~/.zshrc

You may also pipe the output of madrun-completion to a file such as /usr/local/etc/bash_completion.d/madrun if you have a system that will read that file for you.

Options

Madrun can be configured using env variables.

MADRUN_PWD

MADRUN_PWD will output current directory path:

MADRUN_PWD=1 madrun lint
> putout lib test .madrun.js (/home/coderaiser/cloudcmd)

MADRUN_NAME

MADRUN_NAME will output name of current directory:

MADRUN_NAME=1 madrun lint
> putout lib test .madrun.js (cloudcmd)

API

madrun supports next API set:

run(name, [opt, env])

Run script by a name or regexp.

  • name - name of a sript
  • opt - options to run with
  • env - object with env variables
  • scripts - all scripts set (need for embedding only)

series(names, [opt, env, scripts])

Run scripts by a name or regexp one-by-one.

  • name - array of names of scrips
  • opt - options to run with
  • env - object with env variables
  • scripts - all scripts set (need for embedding only)

parallel (names, [opt, env, scripts])

Run scripts by a name or regexp parallel.

  • name - array of names of scrips
  • opt - options to run with
  • env - object with env variables
  • scripts - all scripts set (need for embedding only)

Predefined scripts

You can easilly add one of predefined scripts

eslint({names, ignore})

eslint({
    names: ['a'],
    ignore: ['b'],
});
// returns
`eslint a --ignore-pattern 'b'`

eslint({names, ignore, rulesdir})

eslint({
    names: ['a'],
    ignore: ['b'],
});
// returns
`eslint a --ignore-pattern 'b'`

putout({names, rulesdir, formatter}) || putout(names)

const names = ['a'];

putout(names)
// returns
`putout a`;

putout({names})
// returns
`putout a`;

Example

Let's install madrun and save it as devDependency with:

npm i madrun -D

Let's create file .madrun.js:

const {
    run,
    predefined,
} = require('madrun');

const {putout} = predefined;

module.exports = {
    'lint': () => {
        const names = [
            'bin',
            'lib',
            'test',
        ];
        
        putout({
            names
        });
    },
    'fix:lint': () => run('lint', '--fix', {
        NODE_ENV: 'development'
    });
};

Now you can call any of listed scripts with help of madrun cli:

$ madrun lint
> putout lib

For parallel fix with can use:

$ madrun fix:lint
> NODE_ENV=development putout lib --fix

Related

  • redrun - CLI tool to run multiple npm-scripts fast.

License

MIT

About

CLI tool to run multiple npm-scripts in a madly comfortable way

Topics

Resources

License

Packages

No packages published
You can’t perform that action at this time.