|
1 | | -import { Command } from '@commander-js/extra-typings' |
| 1 | +import { Command, Option, CommanderError } from '@commander-js/extra-typings' |
2 | 2 | import type { EnvCmdOptions, CommanderOptions, EnvFileOptions, RCFileOptions } from './types.ts' |
3 | 3 | import { parseArgList } from './utils.js' |
4 | 4 | import packageJson from '../package.json' with { type: 'json' } |
@@ -51,9 +51,9 @@ export function parseArgs(args: string[]): EnvCmdOptions { |
51 | 51 | rc = { |
52 | 52 | environments: parsedCmdOptions.environments, |
53 | 53 | // if we get a boolean value assume not defined |
54 | | - filePath: parsedCmdOptions.rcFile === true ? |
| 54 | + filePath: parsedCmdOptions.file === true ? |
55 | 55 | undefined : |
56 | | - parsedCmdOptions.rcFile, |
| 56 | + parsedCmdOptions.file, |
57 | 57 | } |
58 | 58 | } |
59 | 59 |
|
@@ -88,19 +88,23 @@ export function parseArgs(args: string[]): EnvCmdOptions { |
88 | 88 | } |
89 | 89 |
|
90 | 90 | export function parseArgsUsingCommander(args: string[]): CommanderOptions { |
| 91 | + |
91 | 92 | return new Command('env-cmd') |
92 | 93 | .description('CLI for executing commands using an environment from an env file.') |
93 | 94 | .version(packageJson.version, '-v, --version') |
94 | 95 | .usage('[options] -- <command> [...args]') |
95 | 96 | .option('-e, --environments [envs...]', 'The rc file environment(s) to use', parseArgList) |
96 | | - .option('-f, --file [path]', 'Custom env file path (default path: ./.env)') |
97 | | - .option('-r, --rc-file [path]', 'Custom rc file path (default path: ./.env-cmdrc.(js|cjs|mjs|json)') |
| 97 | + .option('-f, --file [path]', 'Custom env file path or .rc file path if \'-e\' used (default path: ./.env or ./.env-cmdrc.(js|cjs|mjs|json))') |
98 | 98 | .option('-x, --expand-envs', 'Replace $var in args and command with environment variables') |
99 | 99 | .option('--fallback', 'Fallback to default env file path, if custom env file path not found') |
100 | 100 | .option('--no-override', 'Do not override existing environment variables') |
101 | 101 | .option('--silent', 'Ignore any env-cmd errors and only fail on executed program failure.') |
102 | 102 | .option('--use-shell', 'Execute the command in a new shell with the given environment') |
103 | 103 | .option('--verbose', 'Print helpful debugging information') |
| 104 | + // TODO: Remove -r deprecation error on version >= v12 |
| 105 | + .addOption(new Option('-r, --rc-file [path]', 'Deprecated Option') |
| 106 | + .hideHelp() |
| 107 | + .argParser(() => { throw new CommanderError(1, 'deprecated-option', 'The -r flag has been deprecated, use the -f flag instead.') })) |
104 | 108 | .allowUnknownOption(true) |
105 | 109 | .allowExcessArguments(true) |
106 | 110 | .parse(['_', '_', ...args], { from: 'node' }) |
|
0 commit comments