# doop-cli

> Doop CLI helper to perform unit based operations on the current project

Latest version **1.3.0** (published 2017-10-08) · MIT license · 0 weekly downloads

## Install

```sh
npm install doop-cli
pnpm add doop-cli
yarn add doop-cli
bun add doop-cli
```

Provides the command `doop`.

## 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.3.0 |
| Published | 2017-10-08 |
| First published | 2016-08-29 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Node | 6.0.0 |
| Dependencies | 18 |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Author | Matt Carter |
| Maintainers | hash-bang |
| Keywords | mfdc, doop, cli |

## Links

- npm: https://www.npmjs.com/package/doop-cli
- Homepage: https://github.com/MomsFriendlyDevCo/doop-cli#readme
- Issues: https://github.com/MomsFriendlyDevCo/doop-cli/issues
- npm.io page: https://npm.io/package/doop-cli

## Dependencies (18)

- [ini](https://npm.io/package/ini.md) ^1.3.4
- [ncp](https://npm.io/package/ncp.md) ^2.0.0
- [glob](https://npm.io/package/glob.md) ^7.1.2
- [temp](https://npm.io/package/temp.md) ^0.8.3
- [chalk](https://npm.io/package/chalk.md) ^2.1.0
- [lodash](https://npm.io/package/lodash.md) ^4.17.4
- [mkdirp](https://npm.io/package/mkdirp.md) ^0.5.1
- [rimraf](https://npm.io/package/rimraf.md) ^2.6.2
- [homedir](https://npm.io/package/homedir.md) ^0.6.0
- [glob-all](https://npm.io/package/glob-all.md) ^3.1.0
- [inquirer](https://npm.io/package/inquirer.md) ^3.3.0
- [mustache](https://npm.io/package/mustache.md) ^2.3.0
- [commander](https://npm.io/package/commander.md) ^2.11.0
- [node-sha1](https://npm.io/package/node-sha1.md) ^1.0.1
- [spawn-args](https://npm.io/package/spawn-args.md) ^0.2.0
- [async-chainable](https://npm.io/package/async-chainable.md) ^2.3.2
- [async-chainable-exec](https://npm.io/package/async-chainable-exec.md) ^1.3.4
- [async-chainable-flush](https://npm.io/package/async-chainable-flush.md) ^1.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.3.0 (latest) — 2017-10-08
- 1.2.7 — 2016-11-04
- 1.2.6 — 2016-11-02
- 1.2.5 — 2016-11-01
- 1.2.4 — 2016-10-27
- 1.2.3 — 2016-09-04
- 1.2.2 — 2016-08-31
- 1.2.1 — 2016-08-29
- 1.2.0 — 2016-08-29
- 1.1.0 — 2016-08-29

## README

Doop-CLI
========
Command Line Interface for the [Doop Framework](https://github.com/MomsFriendlyDevCo/Doop).

```
  Usage: doop [options] [command]


  Commands:

    config                    List Doop config
    delete [unit]             Delete an exising unit from the project
    gentest-schema [unit...]  Generate Mocha/Chai tests from unit schema files
    glob [glob]               Glob for files within units and perform operations on them
    install [unit...]         Install one or more units from the upstream Doop repo
    list                      List units installed for the current project
    make [unit]               Create a unit skeleton from the given name (plurals for unit names are recommended)
    merge [unit]              Attempt to merge a unit with the upstream Doop repo
    setup                     Configure Doop-Cli
    help [cmd]                display help for [cmd]

  Perform a Doop operation on the currently active project

  Options:

    -h, --help     output usage information
    -V, --version  output the version number
```

Getting Started
---------------
Install globally with NPM:

```bash
npm install -g doop-cli
```

Setup the Doop-Cli

```bash
doop setup
```

Navigate to your project root and, to list installed units in the project, run:

```bash
doop list
```

Configuration
-------------
The `~/.dooprc` file is read for additional Doop settings. This file will be created with a basic layout when running `doop setup` for the first time.

Run the `doop config` command for the current configuration.


| Config path               | Type   | Default          | Description                                                                            |
|---------------------------|--------|------------------|----------------------------------------------------------------------------------------|
| `globs.projectRoot`       | string | `./package.json` | The glob to use to identify the project root                                           |
| `globs.units`             | string | `./units/*/`     | Where to find a projects Units                                                         |
| `paths.doopCli`           | string | Programatic      | The file path to the Doop CLI file (automatically determined by default)               |
| `paths.doop`              | string | Null             | The path on disk of the master Doop repo                                               |
| `paths.project`           | string | Programatic      | The path on disk of the current project (automatically determined by default)          |
| `aliases`                 | Object | `{default: 'list', ls: 'list', i: 'install', 'rm': 'delete'}` | An object containing a list of valid [alias](#aliases) commands |
| `tools`                   | Object | `{meld: 'meld {{{project.path}}} {{{doop.path}}}'}` | An object of available tools (used mainly to merge) |
| `list.changes.maxEdited`  | number | `3`              | The maximum number of files to show per unit before compressing the list display       |
| `list.changes.maxCreated` | number | `3`              | As with `list.changes.maxEdited` but for created files                                 |


Aliases
-------
Doop supports command line aliasing similar to Git. By specifying an alias you can provide a shortcut to the full command without constant repetion.

* The meta `default` alias specifies what command to actually run if the CLI is run with no arguments
* All commands are assumed to assume a `doop` prefix unless the alias begins with an exclaimation mark (to run the command as is)


For example setting the following in your `~/.dooprc` file will configure a selection of aliases:

```ini
[aliases]
default=list
ls=list
i=install
rm=delete
schm=glob *.schm.js
status=!git status
```

* The `default` parameter tells Doop what to run if no command is specified (i.e. you run the CLI as just `doop` with no arguments).
* Running `doop ls` will actually run `doop list`
* Running `doop status` will run `git status`. The exclaimation mark prefix indicates that the command should be run as-is without an automatic `doop` prefix
* Running `doop schm` will run `doop glob *.schm.js` files. Note that this will also carry any command line arguments automatically. For example `doop schm -e` will actually run `doop glob *.schm.js -e`

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