10.0.1 • Published 3 months ago

madrun v10.0.1

Weekly downloads
1,402
License
MIT
Repository
github
Last release
3 months ago

🏎 Madrun License NPM version Build Status Coverage Status

image

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 with all scripts written in JavaScript;
  • ✅ update package.json scripts to use madrun;

This can be done using:

madrun --init

When you create new script, you can run it with: madrun lint test. Run madrun --init again, to update package.json, so you can use:

npm run lint
npm test

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 script
  • 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)

cutEnv(name, opt, env)

Same as run, but returns result without env.

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

Example

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

npm i madrun -D

Let's create file .madrun.js:

import {
    run,
    cutEnv,
} from 'madrun';

const env = {
    CI: 1,
};

export default {
    'lint': () => 'putout .',
    'fix:lint': async () => await run('lint', '--fix', {
        NODE_ENV: 'development',
    }),
    'lint:env': () => ['putout .', {
        CI: 1,
    }],
    'env:lint': () => [env, 'putout .'],
    'lint:no-env': async () => await cutEnv('lint:env'),
};

Now you can call any of listed scripts with help of 🏎 Madrun:

madrun lint
> putout .

For series run you can use:

madrun lint:*
> CI=1 putout . && putout .

Related

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

License

MIT

10.0.1

3 months ago

10.0.0

4 months ago

9.4.1

5 months ago

9.4.0

7 months ago

9.3.1

9 months ago

9.3.0

10 months ago

9.2.0

12 months ago

9.0.8

1 year ago

9.1.0

1 year ago

9.0.7

1 year ago

9.0.6

2 years ago

9.0.5

2 years ago

9.0.4

2 years ago

9.0.3

2 years ago

9.0.2

2 years ago

9.0.1

2 years ago

9.0.0

2 years ago

8.10.0

2 years ago

8.10.1

2 years ago

8.9.0

2 years ago

8.9.1

2 years ago

8.8.12

2 years ago

8.8.11

2 years ago

8.8.10

3 years ago

8.8.9

3 years ago

8.8.8

3 years ago

8.8.7

3 years ago

8.8.6

3 years ago

8.8.5

3 years ago

8.8.3

3 years ago

8.8.4

3 years ago

8.8.2

3 years ago

8.8.1

3 years ago

8.8.0

3 years ago

8.7.2

3 years ago

8.7.1

3 years ago

8.7.0

3 years ago

8.6.5

3 years ago

8.6.4

3 years ago

8.6.3

3 years ago

8.6.2

3 years ago

8.6.1

3 years ago

8.6.0

3 years ago

8.4.0

3 years ago

8.5.0

3 years ago

8.3.8

3 years ago

8.3.7

3 years ago

8.3.6

3 years ago

8.3.5

3 years ago

8.3.4

3 years ago

8.3.3

3 years ago

8.3.0

3 years ago

8.3.2

3 years ago

8.3.1

3 years ago

8.2.0

3 years ago

8.1.0

3 years ago

8.0.5

3 years ago

8.0.4

3 years ago

8.0.3

3 years ago

8.0.2

3 years ago

8.0.1

3 years ago

8.0.0

3 years ago

7.0.5

3 years ago

7.0.4

4 years ago

7.0.3

4 years ago

7.0.2

4 years ago

7.0.1

4 years ago

7.0.0

4 years ago

6.0.1

4 years ago

6.0.0

4 years ago

5.5.0

4 years ago

5.4.5

4 years ago

5.4.4

4 years ago

5.4.3

4 years ago

5.4.2

4 years ago

5.4.1

4 years ago

5.4.0

4 years ago

5.3.0

4 years ago

5.2.1

4 years ago

5.2.0

4 years ago

5.1.1

4 years ago

5.1.0

4 years ago

5.0.1

4 years ago

5.0.0

4 years ago

4.2.0

4 years ago

4.1.4

4 years ago

4.1.3

4 years ago

4.1.2

4 years ago

4.1.1

4 years ago

4.1.0

4 years ago

4.0.0

4 years ago

3.1.1

4 years ago

3.1.0

4 years ago

3.0.6

5 years ago

3.0.5

5 years ago

3.0.4

5 years ago

3.0.3

5 years ago

3.0.2

5 years ago

3.0.1

5 years ago

3.0.0

5 years ago

2.5.1

5 years ago

2.5.0

5 years ago

2.4.0

5 years ago

2.3.1

5 years ago

2.3.0

5 years ago

2.2.0

5 years ago

2.1.4

5 years ago

2.1.3

5 years ago

2.1.2

5 years ago

2.1.1

5 years ago

2.1.0

5 years ago

2.0.1

5 years ago

2.0.0

5 years ago

1.4.0

5 years ago

1.3.0

5 years ago

1.2.0

5 years ago

1.1.1

5 years ago

1.1.0

5 years ago

1.0.1

5 years ago

1.0.0

5 years ago