@@ -22,6 +22,19 @@ interface LogsArgs {
2222 lines : number ;
2323}
2424
25+ interface InitArgs {
26+ command : 'init' ;
27+ yes : boolean ;
28+ skipMcp : boolean ;
29+ showSecrets : boolean ;
30+ scanPaths : string [ ] ;
31+ }
32+
33+ interface ValidateArgs {
34+ command : 'validate' ;
35+ fix : boolean ;
36+ }
37+
2538interface VersionArgs {
2639 command : 'version' ;
2740}
@@ -30,9 +43,9 @@ interface HelpArgs {
3043 command : 'help' ;
3144}
3245
33- export type CliArgs = StartArgs | StopArgs | StatusArgs | LogsArgs | VersionArgs | HelpArgs ;
46+ export type CliArgs = StartArgs | StopArgs | StatusArgs | LogsArgs | InitArgs | ValidateArgs | VersionArgs | HelpArgs ;
3447
35- const KNOWN_COMMANDS = [ 'start' , 'stop' , 'status' , 'logs' ] as const ;
48+ const KNOWN_COMMANDS = [ 'start' , 'stop' , 'status' , 'logs' , 'init' , 'validate' ] as const ;
3649type KnownCommand = ( typeof KNOWN_COMMANDS ) [ number ] ;
3750
3851function hasFlag ( args : string [ ] , long : string , short ?: string ) : boolean {
@@ -90,6 +103,33 @@ function parseLogsArgs(args: string[]): LogsArgs {
90103 } ;
91104}
92105
106+ function getAllFlagValues ( args : string [ ] , long : string ) : string [ ] {
107+ const values : string [ ] = [ ] ;
108+ for ( let index = 0 ; index < args . length ; index ++ ) {
109+ if ( args [ index ] === long && args [ index + 1 ] !== undefined ) {
110+ values . push ( args [ index + 1 ] ) ;
111+ }
112+ }
113+ return values ;
114+ }
115+
116+ function parseInitArgs ( args : string [ ] ) : InitArgs {
117+ return {
118+ command : 'init' ,
119+ yes : hasFlag ( args , '--yes' , '-y' ) ,
120+ skipMcp : hasFlag ( args , '--skip-mcp' ) ,
121+ showSecrets : hasFlag ( args , '--show-secrets' ) ,
122+ scanPaths : getAllFlagValues ( args , '--scan-path' ) ,
123+ } ;
124+ }
125+
126+ function parseValidateArgs ( args : string [ ] ) : ValidateArgs {
127+ return {
128+ command : 'validate' ,
129+ fix : hasFlag ( args , '--fix' ) ,
130+ } ;
131+ }
132+
93133export function parseCliArgs ( args : string [ ] ) : CliArgs {
94134 if ( hasFlag ( args , '--version' , '-v' ) ) {
95135 return { command : 'version' } ;
@@ -110,5 +150,9 @@ export function parseCliArgs(args: string[]): CliArgs {
110150 return parseStatusArgs ( args ) ;
111151 case 'logs' :
112152 return parseLogsArgs ( args ) ;
153+ case 'init' :
154+ return parseInitArgs ( args ) ;
155+ case 'validate' :
156+ return parseValidateArgs ( args ) ;
113157 }
114158}
0 commit comments