@checkup/cli
A CLI that provides health check information about your project.
Usage
Install checkup CLI globally:
$ yarn global add @checkup/cli
# or
$ npm install -g @checkup/cli
First use the config generator to create a config file in your project's directory:
$ checkup generate config
The checkup
CLI is now available to run. Use the run
command to run Checkup against your project directory:
$ checkup
Checking up on your project...
Checkup Command (alias checkup run
)
checkup PATH
A CLI that provides health check information about your project
A health checkup for your project
USAGE
$ checkup [run] PATHS
ARGUMENTS
PATHS The paths that checkup will operate on. If no paths are provided, checkup will run on the entire directory beginning
at --cwd.
OPTIONS
-c, --config=config Use this configuration, overriding .checkuprc.* if present.
-d, --cwd=cwd [default: '.'] The path referring to the root
directory that Checkup will run in
-e, --exclude-paths=exclude-paths Paths to exclude from checkup. If paths are provided via command line and via checkup
config, command line paths will be used.
-f, --format=stdout|json [default: stdout] The output format, one of stdout, json
-h, --help show CLI help
-l, --list-tasks List all available tasks to run.
-o, --output-file=output-file Specify file to write JSON output to. Requires the `--format` flag to be set to `json`
-t, --task=task Runs specific tasks specified by the fully qualified task name in the format
pluginName/taskName. Can be used multiple times.
-v, --version show CLI version
--category=category Runs specific tasks specified by category. Can be used multiple times.
--group=group Runs specific tasks specified by group. Can be used multiple times.
--verbose
See code: src/commands/run.ts
Generate Command
Checkup comes with a few generators to help generate Checkup plugins and tasks.
checkup generate plugin PLUGIN_NAME PATH
Generate a checkup plugin.
USAGE
$ checkup generate plugin PLUGIN_NAME PATH
ARGUMENTS
NAME name of the plugin (kebab-case)
PATH [default: .] The path referring to the directory that the generator will run in
OPTIONS
--defaults use defaults for every setting
--force overwrite existing files
--options=options (typescript)
checkup generate task TASK_NAME PATH
Generate a task within a Checkup plugin.
USAGE
$ checkup generate task TASK_NAME PATH
ARGUMENTS
NAME name of the task (kebab-case)
PATH [default: .] The path referring to the directory that the generator will run in
OPTIONS
--defaults use defaults for every setting
--force overwrite existing files
--options=options (typescript)
See code: src/commands/generate.ts
Configuration
Checkup is designed to be completely configurable via a configuration object.
Checkup uses cosmiconfig to find and load your configuration object. Starting from the current working directory, it looks for the following possible sources:
- a .checkuprc file
- a checkup.config.js file exporting a JS object
The search stops when one of these is found, and Checkup uses that object.
The .checkuprc file (without extension) can be in JSON or JavaScript format. You can add a filename extension to help your text editor provide syntax checking and highlighting:
You can also specify an explicit path to a configuration via the command line, which will override any configurations found in any .checkuprc.*
files
$ checkup --config /some/path/to/my/config/.checkuprc
The configuration object has the following properties:
Plugins
Plugins are collections of Checkup tasks that are intended to be configured and run. Conceptually, they're very similar to eslint plugins, which themselves contain a collection of eslint rules to run.
Plugins can be authored by anyone, and configured to run for any codebase. Checkup comes with a plugin generator, making it easy to generate the scaffolding needed.
To generate a plugin, run:
$ checkup generate plugin checkup-plugin-foo
To configure plugins, use the plugins key in your configuration file, which contains a list of plugin names.
{
"plugins": ["checkup-plugin-foo"]
}
Tasks
Tasks are the core primitive that Checkup uses to gather data for the Checkup report.
To generate a task, run the following in the plugin directory you want to add the task to:
$ checkup generate task example-task