22
33import { executeCommand } from "./cli/execute-command.js" ;
44import { parseCliArgs , USAGE_TEXT } from "./cli/parse-args.js" ;
5+ import type { ParsedCommand } from "./cli/types.js" ;
56import { failureEnvelope , successEnvelope } from "./core/envelope.js" ;
67import { toApiError } from "./core/errors.js" ;
78import { createBuildkiteClient } from "./shell/buildkite-client.js" ;
89import { getBuildkiteTokenFromEnv } from "./shell/env.js" ;
10+ import { setupAuthConfig } from "./shell/auth-config.js" ;
911
1012function printJson ( value : unknown ) : void {
1113 process . stdout . write ( `${ JSON . stringify ( value , null , 2 ) } \n` ) ;
@@ -15,13 +17,23 @@ function shouldShowHelp(argv: Array<string>): boolean {
1517 return argv . includes ( "--help" ) || argv . includes ( "-h" ) ;
1618}
1719
20+ function getSafeRequest ( command : ParsedCommand ) : Record < string , unknown > {
21+ if ( command . name === "auth.setup" ) {
22+ return {
23+ tokenProvided : command . args . token !== null ,
24+ } ;
25+ }
26+
27+ return { ...command . args } ;
28+ }
29+
1830async function main ( argv : Array < string > ): Promise< number > {
1931 if ( argv . length === 0 || shouldShowHelp ( argv ) ) {
2032 process . stdout . write ( `${ USAGE_TEXT } \n` ) ;
2133 return 0 ;
2234 }
2335
24- let parsed ;
36+ let parsed: ParsedCommand ;
2537 try {
2638 parsed = parseCliArgs ( argv ) ;
2739 } catch (error) {
@@ -30,6 +42,37 @@ async function main(argv: Array<string>): Promise<number> {
3042 return 1 ;
3143 }
3244
45+ if (parsed.name === "auth.setup") {
46+ try {
47+ const result = await setupAuthConfig ( {
48+ token : parsed . args . token ,
49+ } ) ;
50+
51+ const output = successEnvelope ( {
52+ command : parsed . name ,
53+ request : getSafeRequest ( parsed ) ,
54+ summary : {
55+ configured : true ,
56+ source : result . source ,
57+ } ,
58+ pagination : null ,
59+ data : {
60+ path : result . path ,
61+ } ,
62+ } ) ;
63+ printJson ( output ) ;
64+ return 0 ;
65+ } catch ( error ) {
66+ const output = failureEnvelope ( {
67+ command : parsed . name ,
68+ request : getSafeRequest ( parsed ) ,
69+ error : toApiError ( error ) ,
70+ } ) ;
71+ printJson ( output ) ;
72+ return 1 ;
73+ }
74+ }
75+
3376 try {
3477 const token = getBuildkiteTokenFromEnv ( ) ;
3578 const client = createBuildkiteClient ( token ) ;
@@ -51,7 +94,7 @@ async function main(argv: Array<string>): Promise<number> {
5194 } catch (error) {
5295 const output = failureEnvelope ( {
5396 command : parsed . name ,
54- request : { ... parsed . args } ,
97+ request : getSafeRequest ( parsed ) ,
5598 error : toApiError ( error ) ,
5699 } ) ;
57100 printJson ( output ) ;
0 commit comments