@@ -59,46 +59,7 @@ func Run(args []string, container LanguageContainer) int {
5959 slog .Warn ("librariangen: configure command is not yet implemented" )
6060 return 1
6161 case "release-init" :
62- cfg := & release.Context {}
63- releaseInitFlags := flag .NewFlagSet ("release-init" , flag .ContinueOnError )
64- releaseInitFlags .StringVar (& cfg .LibrarianDir , "librarian" , "/librarian" , "Path to the librarian-tool input directory. Contains release-init-request.json." )
65- releaseInitFlags .StringVar (& cfg .RepoDir , "repo" , "/repo" , "Path to the language repo." )
66- releaseInitFlags .StringVar (& cfg .OutputDir , "output" , "/output" , "Path to the output directory." )
67- if err := releaseInitFlags .Parse (flags ); err != nil {
68- slog .Error ("failed to parse flags" , "error" , err )
69- return 1
70- }
71- requestPath := filepath .Join (cfg .LibrarianDir , "release-init-request.json" )
72- bytes , err := os .ReadFile (requestPath )
73- if err != nil {
74- slog .Error ("failed to read request file" , "path" , requestPath , "error" , err )
75- return 1
76- }
77- request := & message.ReleaseInitRequest {}
78- if err := json .Unmarshal (bytes , request ); err != nil {
79- slog .Error ("failed to parse request JSON" , "error" , err )
80- return 1
81- }
82- config := & release.Config {
83- Context : cfg ,
84- Request : request ,
85- }
86- response , err := container .ReleaseInit (context .Background (), config )
87- if err != nil {
88- slog .Error ("release-init failed" , "error" , err )
89- return 1
90- }
91- bytes , err = json .MarshalIndent (response , "" , " " )
92- if err != nil {
93- slog .Error ("failed to marshal response JSON" , "error" , err )
94- return 1
95- }
96- responsePath := filepath .Join (cfg .LibrarianDir , "release-init-response.json" )
97- if err := os .WriteFile (responsePath , bytes , 0644 ); err != nil {
98- slog .Error ("failed to write response file" , "path" , responsePath , "error" , err )
99- return 1
100- }
101- slog .Info ("librariangen: release-init command executed successfully" )
62+ return handleReleaseInit (flags , container )
10263 case "build" :
10364 slog .Warn ("librariangen: build command is not yet implemented" )
10465 return 1
@@ -108,3 +69,47 @@ func Run(args []string, container LanguageContainer) int {
10869 }
10970 return 0
11071}
72+
73+ func handleReleaseInit (flags []string , container LanguageContainer ) int {
74+ cfg := & release.Context {}
75+ releaseInitFlags := flag .NewFlagSet ("release-init" , flag .ContinueOnError )
76+ releaseInitFlags .StringVar (& cfg .LibrarianDir , "librarian" , "/librarian" , "Path to the librarian-tool input directory. Contains release-init-request.json." )
77+ releaseInitFlags .StringVar (& cfg .RepoDir , "repo" , "/repo" , "Path to the language repo." )
78+ releaseInitFlags .StringVar (& cfg .OutputDir , "output" , "/output" , "Path to the output directory." )
79+ if err := releaseInitFlags .Parse (flags ); err != nil {
80+ slog .Error ("failed to parse flags" , "error" , err )
81+ return 1
82+ }
83+ requestPath := filepath .Join (cfg .LibrarianDir , "release-init-request.json" )
84+ bytes , err := os .ReadFile (requestPath )
85+ if err != nil {
86+ slog .Error ("failed to read request file" , "path" , requestPath , "error" , err )
87+ return 1
88+ }
89+ request := & message.ReleaseInitRequest {}
90+ if err := json .Unmarshal (bytes , request ); err != nil {
91+ slog .Error ("failed to parse request JSON" , "error" , err )
92+ return 1
93+ }
94+ config := & release.Config {
95+ Context : cfg ,
96+ Request : request ,
97+ }
98+ response , err := container .ReleaseInit (context .Background (), config )
99+ if err != nil {
100+ slog .Error ("release-init failed" , "error" , err )
101+ return 1
102+ }
103+ bytes , err = json .MarshalIndent (response , "" , " " )
104+ if err != nil {
105+ slog .Error ("failed to marshal response JSON" , "error" , err )
106+ return 1
107+ }
108+ responsePath := filepath .Join (cfg .LibrarianDir , "release-init-response.json" )
109+ if err := os .WriteFile (responsePath , bytes , 0644 ); err != nil {
110+ slog .Error ("failed to write response file" , "path" , responsePath , "error" , err )
111+ return 1
112+ }
113+ slog .Info ("librariangen: release-init command executed successfully" )
114+ return 0
115+ }
0 commit comments