From e2db12b878922997d2d75262db2db59ee0aa4949 Mon Sep 17 00:00:00 2001 From: Todd Bluhm Date: Sat, 12 Jul 2025 01:14:31 -0800 Subject: [PATCH] fix(parse-args): add helpful -r flag deprecation error message --- dist/parse-args.js | 6 +++++- src/parse-args.ts | 7 ++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/dist/parse-args.js b/dist/parse-args.js index 7591057..792001f 100644 --- a/dist/parse-args.js +++ b/dist/parse-args.js @@ -1,4 +1,4 @@ -import { Command } from '@commander-js/extra-typings'; +import { Command, Option, CommanderError } from '@commander-js/extra-typings'; import { parseArgList } from './utils.js'; import packageJson from '../package.json' with { type: 'json' }; /** @@ -89,6 +89,10 @@ export function parseArgsUsingCommander(args) { .option('--silent', 'Ignore any env-cmd errors and only fail on executed program failure.') .option('--use-shell', 'Execute the command in a new shell with the given environment') .option('--verbose', 'Print helpful debugging information') + // TODO: Remove -r deprecation error on version >= v12 + .addOption(new Option('-r, --rc-file [path]', 'Deprecated Option') + .hideHelp() + .argParser(() => { throw new CommanderError(1, 'deprecated-option', 'The -r flag has been deprecated, use the -f flag instead.'); })) .allowUnknownOption(true) .allowExcessArguments(true) .parse(['_', '_', ...args], { from: 'node' }); diff --git a/src/parse-args.ts b/src/parse-args.ts index 4f8ec9b..74dcdd7 100644 --- a/src/parse-args.ts +++ b/src/parse-args.ts @@ -1,4 +1,4 @@ -import { Command } from '@commander-js/extra-typings' +import { Command, Option, CommanderError } from '@commander-js/extra-typings' import type { EnvCmdOptions, CommanderOptions, EnvFileOptions, RCFileOptions } from './types.ts' import { parseArgList } from './utils.js' import packageJson from '../package.json' with { type: 'json' } @@ -88,6 +88,7 @@ export function parseArgs(args: string[]): EnvCmdOptions { } export function parseArgsUsingCommander(args: string[]): CommanderOptions { + return new Command('env-cmd') .description('CLI for executing commands using an environment from an env file.') .version(packageJson.version, '-v, --version') @@ -100,6 +101,10 @@ export function parseArgsUsingCommander(args: string[]): CommanderOptions { .option('--silent', 'Ignore any env-cmd errors and only fail on executed program failure.') .option('--use-shell', 'Execute the command in a new shell with the given environment') .option('--verbose', 'Print helpful debugging information') + // TODO: Remove -r deprecation error on version >= v12 + .addOption(new Option('-r, --rc-file [path]', 'Deprecated Option') + .hideHelp() + .argParser(() => { throw new CommanderError(1, 'deprecated-option', 'The -r flag has been deprecated, use the -f flag instead.') })) .allowUnknownOption(true) .allowExcessArguments(true) .parse(['_', '_', ...args], { from: 'node' })