Extend the CLI
Sometimes you may want to add a command-line utility for users of your plugin or theme. An example use case would be to generate backups or downloads in CSV format.
You can easily create a factor run
command using a filter.
Add A Custom Command
To add a custom CLI command, you just need to add a special callback using the cli-run-
prefix on the filter ID. The command will then be available when running:
npx factor run <command>
When the callback is called, it is passed other arguments provided to the command line.
To create the command:
// index
import { addCallback } from "@factor/api"
import inquirer from "inquirer" // https://github.com/SBoudrias/Inquirer.js
addCallback("cli-run-database-import", cliArguments => databaseImport(cliArguments))
export const databaseImport = async (cliArguments) => {
const questions = [
{
name: "file",
message: "What is the path to the file for import?",
type: "input"
}]
const answers = await inquirer.prompt(questions)
const data = await require("fs-extra").readJson(resolve(process.cwd(), answers.file))
// Import data...
]
}
Now, to call the command :
npx factor run database-import
Tip: We recommend using the Inquirer CLI utility for CLI inputs from users