diff --git a/package.json b/package.json index ff93442..f8706f8 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "linear-release", - "version": "0.1.0", + "version": "0.2.0", "private": true, "description": "CLI tool to integrate CI/CD pipelines with Linear releases", "homepage": "https://github.com/linear/linear-release", diff --git a/src/index.ts b/src/index.ts index 1ed4cec..6b4e62c 100644 --- a/src/index.ts +++ b/src/index.ts @@ -18,6 +18,46 @@ import { log } from "./log"; import { pluralize } from "./util"; import { buildUserAgent } from "./user-agent"; +declare const CLI_VERSION: string; + +if (process.argv.includes("--version") || process.argv.includes("-v")) { + console.log(CLI_VERSION); + process.exit(0); +} + +if (process.argv.includes("--help") || process.argv.includes("-h")) { + console.log(`Linear Release CLI v${CLI_VERSION} + +Integrate CI/CD pipelines with Linear releases. + +Usage: linear-release [options] + +Commands: + sync Create or update a release by scanning commits (default) + complete Mark the current release as complete + update Update the deployment stage of a release + +Options: + --name= Custom release name (sync only) + --version= Release version identifier + --stage= Deployment stage (required for update) + --include-paths= Filter commits by file paths (comma-separated globs) + -v, --version Show version number + -h, --help Show this help message + +Environment: + LINEAR_ACCESS_KEY Pipeline access key (required) + +Examples: + linear-release sync + linear-release sync --name="Release 1.2.0" --version="1.2.0" + linear-release complete + linear-release update --stage=production + linear-release sync --include-paths="apps/web/**,packages/**" +`); + process.exit(0); +} + const accessKey: string = process.env.LINEAR_ACCESS_KEY || ""; const command: string = process.argv[2] || "sync";