@@ -25,6 +25,18 @@ export async function parseArgs(): Promise<ParsedArgs> {
2525 try {
2626 const { args, resultArgs } = loadCliArgs ( )
2727
28+ // Strip a leading release type / version number from positional args before
29+ // passing files to loadBumpConfig, so it doesn't override config-file `files`.
30+ const rawFiles = [ ...( args [ '--' ] || [ ] ) , ...resultArgs ]
31+ let releaseFromArgs : string | undefined
32+ if ( rawFiles . length > 0 ) {
33+ const firstArg = rawFiles [ 0 ]
34+ if ( firstArg === 'prompt' || isReleaseType ( firstArg ) || isValidVersion ( firstArg ) ) {
35+ releaseFromArgs = firstArg
36+ rawFiles . shift ( )
37+ }
38+ }
39+
2840 const parsedArgs : ParsedArgs = {
2941 help : args . help as boolean ,
3042 version : args . version as boolean ,
@@ -40,27 +52,17 @@ export async function parseArgs(): Promise<ParsedArgs> {
4052 confirm : args . yes === undefined ? undefined : ! args . yes ,
4153 noVerify : args . verify === undefined ? undefined : ! args . verify ,
4254 install : args . install ,
43- files : [ ... ( args [ '--' ] || [ ] ) , ... resultArgs ] ,
55+ files : rawFiles . length ? rawFiles : undefined ,
4456 ignoreScripts : args . ignoreScripts ,
4557 currentVersion : args . currentVersion ,
4658 execute : args . execute ,
4759 printCommits : args . printCommits ,
4860 recursive : args . recursive ,
49- release : args . release ,
61+ release : args . release ?? releaseFromArgs ,
5062 configFilePath : args . configFilePath ,
5163 } ) ,
5264 }
5365
54- // If a version number or release type was specified, then it will mistakenly be added to the "files" array
55- if ( parsedArgs . options . files && parsedArgs . options . files . length > 0 ) {
56- const firstArg = parsedArgs . options . files [ 0 ]
57-
58- if ( firstArg === 'prompt' || isReleaseType ( firstArg ) || isValidVersion ( firstArg ) ) {
59- parsedArgs . options . release = firstArg
60- parsedArgs . options . files . shift ( )
61- }
62- }
63-
6466 if ( parsedArgs . options . recursive && parsedArgs . options . files ?. length )
6567 console . log ( styleText ( 'yellow' , 'The --recursive option is ignored when files are specified' ) )
6668
0 commit comments