From dd84b9d64fb98746a230cd24233ff50a562c39c9 Mon Sep 17 00:00:00 2001 From: 简律纯 Date: Fri, 28 Apr 2023 01:36:44 +0800 Subject: --- packages/turbo-workspaces/src/cli.ts | 53 ++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 packages/turbo-workspaces/src/cli.ts (limited to 'packages/turbo-workspaces/src/cli.ts') diff --git a/packages/turbo-workspaces/src/cli.ts b/packages/turbo-workspaces/src/cli.ts new file mode 100644 index 0000000..3ae7a45 --- /dev/null +++ b/packages/turbo-workspaces/src/cli.ts @@ -0,0 +1,53 @@ +#!/usr/bin/env node + +import chalk from "chalk"; +import { Command } from "commander"; + +import { summary, convert } from "./commands"; +import cliPkg from "../package.json"; +import { ConvertError } from "./errors"; + +const workspacesCli = new Command(); + +workspacesCli + .name("@turbo/workspaces") + .description("Tools for working with package manager workspaces") + .version(cliPkg.version, "-v, --version", "output the current version"); + +// convert +workspacesCli + .command("convert") + .description("Convert project between workspace managers") + .argument("[path]", "Project root") + .argument("[package-manager]", "Package manager to convert to") + .option( + "--skip-install", + "Do not run a package manager install after conversion", + false + ) + .option("--dry", "Dry run (no changes are made to files)", false) + .option( + "--force", + "Bypass Git safety checks and forcibly run conversion", + false + ) + .action(convert); + +// summary +workspacesCli + .command("summary") + .description("Display a summary of the specified project") + .argument("[path]", "Project root") + .action(summary); + +workspacesCli.parseAsync().catch((error) => { + console.log(); + if (error instanceof ConvertError) { + console.log(chalk.red(error.message)); + } else { + console.log(chalk.red("Unexpected error. Please report it as a bug:")); + console.log(error.message); + } + console.log(); + process.exit(1); +}); -- cgit v1.2.3-70-g09d2