# rii

> CLI command runner

Latest version **1.0.2** (published 2017-08-16) · MIT license · 0 weekly downloads

## Install

```sh
npm install rii
pnpm add rii
yarn add rii
bun add rii
```

Provides the command `rii`.

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.0.2 |
| Published | 2017-08-16 |
| First published | 2017-08-16 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 6 |
| Known vulnerabilities | 0 (+1 in 1 direct dependencies) |
| Install scripts | no |
| Author | Quentin Engles |
| Maintainers | hollowdoor |
| Keywords | CLI, shell, task, run, exec |

## Links

- npm: https://www.npmjs.com/package/rii
- npm.io page: https://npm.io/package/rii

## Dependencies (6)

- [glob](https://npm.io/package/glob.md) ^7.1.2
- [acorn](https://npm.io/package/acorn.md) ^5.1.1
- [globby](https://npm.io/package/globby.md) ^6.1.0
- [has-flag](https://npm.io/package/has-flag.md) ^2.0.0
- [camelcase](https://npm.io/package/camelcase.md) ^4.1.0
- [yargs-parser](https://npm.io/package/yargs-parser.md) ^7.0.0

## Alternatives

- [@salesforce/cli](https://npm.io/package/@salesforce/cli.md) — 389.7K weekly downloads
- [@mintlify/cli](https://npm.io/package/@mintlify/cli.md) — 208.9K weekly downloads
- [@grafana/e2e-selectors](https://npm.io/package/@grafana/e2e-selectors.md) — 128.7K weekly downloads
- [mintlify](https://npm.io/package/mintlify.md) — 112.0K weekly downloads
- [@intlayer/cli](https://npm.io/package/@intlayer/cli.md) — 22.8K weekly downloads

## Recent versions

- 1.0.2 (latest) — 2017-08-16
- 1.0.1 — 2017-08-16
- 1.0.0 — 2017-08-16

## README

rii
===

Install
-------

`npm install --global rii`

Command Line Usage
------------------

`rii <command> --some-flag`

About
-----

`rii` is a mechanism to consume scripts that contain functions that are called by name as `<command>`. For instance if you were to run `rii <command>` on the command line.

Any file with a `.cmd.js` extension will run by executing `rii`.

Example
-------

**my_directory/script.cmd.js**

```javascript
function thing1(ctx, world){
    //To run this function:
    //rii thing1
    console.log('I am thing one.');
}

function thing2(ctx, world){
    //To run this function:
    //rii thing2
    console.log('I am thing two.');
}

function throwError(){
    //To run this function:
    //rii throw-error
    //This error will print to the console.
    throw new Error('an error');
}
```

Change to `my_directory` run `rii thing1`, and the console prints `I am thing one.`.

Run `rii "thing1 thing2"`, and the console will print:

```
I am thing one.
I am thing two.
```

init
----

If you have an `init.cmd.js` file in the directory you run `rii` this `init.cmd.js` will be run first. If you have an `init()` function defined in `init.cmd.js` that function will be ran before all others.

Arguments
---------

Each function you define will receive two arguments `ctx` (first parameter), and `world` (second parameter).

`ctx` is a regular object where you can set properties at your leasure. All properties/values set on `ctx` will be shared.

`world` is an object that gives you access to values, and operation(s).

world
-----

The world parameter will look something like this:

```javascript
World {
  cwd: '/path/to/my_project',
  argv: [
       '/usr/bin/nodejs',
       '/path/to/rii' ],
  filename: 'script1.cmd.js',
  extend(object){
      //Passing object here extends `ctx`
  }
}
```

To do
-----

* Better documentation
* Show coverage
* Add sub-directory runner

Support [acorn](https://github.com/ternjs/acorn) which is used in `rii` source.

---
_Source: https://npm.io/package/rii · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
