Skip to content

salesforcecli/plugin-command-reference

Repository files navigation

@salesforce/plugin-command-reference

Generate the Salesforce CLI command reference guide.

Version Codecov Downloads/week License

First install the plugin.

$ sf plugins install @salesforce/plugin-command-reference

Ensure any plugins are installed that you with to generate documentation for.

$ sf plugins:install salesforce@plugin-auth

Now we can generate the documentation for all core plug-ins.

# notice we can use the oclif shorthand for the plugin name.  @salesforce/plugin-foo => foo
$ sf commandreference --plugins auth

Note: Warnings will occur for missing properties in plugins. Those have to be fixed in the plugin itself.

Add to your Salesforce CLI Plugin

To add this to your plugin to catch warning at development time, add it as a dev plugin in the project.json.

"oclif": {
  "devPlugins": [
    "@salesforce/plugin-command-reference"
  ]
}

Then you can run this in your plugin's CI.

./bin/dev commandreference --plugins <name-of-your-plugin> --error-on-warnings

Local Development

If you need to make changes to this repository, the easiest thing to do is to link it to your Salesforce CLI. After you cloned this plugin, run the following from this plugin directory:

sf plugins link .

Testing

How do you know if the output is correct, given your change?

# Install the current version of the plugin (use `@sf` until the plugin is publishing the sf version as main)
sf plugins install @salesforce/plugin-command-reference@sf
# installs all JIT plugins (if you intend to produce ditamaps for them)
sf jit install
# run using a relatively current version of plugins, saving the output as a "gold file"
sf commandreference generate --plugins login env deploy-retrieve settings functions info sobject limits schema custom-metadata data community signups user org packaging templates apex auth dev @salesforce/sfdx-plugin-lwc-test -d outputGold

While working on your branch

sf plugins link .
# run the same command from above, but with your new version of the plugin, writing to a new output file
sf commandreference generate --plugins login env deploy-retrieve settings functions info sobject limits schema custom-metadata data community signups user org packaging templates apex auth dev @salesforce/sfdx-plugin-lwc-test -d outputNew

Now diff the output. Changes should be intentional!

Commands

sf commandreference generate

generate the command reference guide located

USAGE
  $ sf commandreference generate [--json] [--flags-dir <value>] [-d <value>] [-p <value>... | -a] [-s <value>] [--hidden]
    [--error-on-warnings] [-c <value>]

FLAGS
  -a, --all                     include all relevant plugins in the generation
  -c, --config-path=<value>     A path to the directory containing a plugin or cli
  -d, --output-dir=<value>      [default: ./tmp/root] output directory to put generated files
  -p, --plugins=<value>...      comma separated list of plugin names to be part of the generation. Defaults to the oclif
                                plugin in the current working directory
  -s, --ditamap-suffix=<value>  [default: unified] unique suffix to append to generated ditamap
      --error-on-warnings       fail the command if there are any warnings
      --hidden                  show hidden commands

GLOBAL FLAGS
  --flags-dir=<value>  Import flag values from a directory.
  --json               Format output as json.

DESCRIPTION
  generate the command reference guide located

  generate the command reference guide located

EXAMPLES
  Generate the command reference guide

    $ sf commandreference generate

  Generate the command reference for a set of plugins

    $ sf commandreference generate --plugins pluginA,pluginB

  Generate the command reference for all plugins

    $ sf commandreference generate --all --output-dir ./docs

  Generate the command reference for all plugins in a directory

    $ sf commandreference generate --all --config-path /path/to/plugin --output-dir ./docs

See code: src/commands/commandreference/generate.ts

sf jit install

Install all JIT plugins.

USAGE
  $ sf jit install [--json] [--flags-dir <value>] [-d]

FLAGS
  -d, --dry-run  List the plugins that would be installed.

GLOBAL FLAGS
  --flags-dir=<value>  Import flag values from a directory.
  --json               Format output as json.

EXAMPLES
  $ sf jit install

See code: src/commands/jit/install.ts