@@ -19,48 +19,51 @@ import (
1919 "context"
2020 "fmt"
2121
22- cli "github.com/googleapis/librarian/internal/legacylibrarian/legacycli"
2322 "github.com/googleapis/librarian/internal/surfer/gcloud"
23+ "github.com/urfave/cli/v3"
2424)
2525
2626// Run executes the surfer CLI with the given command line arguments.
27- func Run (ctx context.Context , args [] string ) error {
27+ func Run (ctx context.Context , args ... string ) error {
2828 cmd := & cli.Command {
29- Short : "surfer generates gcloud command YAML files" ,
30- UsageLine : "surfer generate [arguments]" ,
31- Long : "surfer generates gcloud command YAML files" ,
29+ Name : "surfer" ,
30+ Usage : "generates gcloud command YAML files" ,
31+ UsageText : "surfer generate [arguments]" ,
32+ Description : "surfer generates gcloud command YAML files" ,
3233 Commands : []* cli.Command {
33- newCmdGenerate (),
34+ generateCommand (),
3435 },
3536 }
36- cmd .Init ()
3737 return cmd .Run (ctx , args )
3838}
3939
40- func newCmdGenerate () * cli.Command {
41- var (
42- googleapis string
43- out string
44- )
45-
46- cmdGenerate := & cli.Command {
47- Short : "generate generates gcloud commands" ,
48- UsageLine : "surfer generate <path to gcloud.yaml> --googleapis <path> [--out <path>]" ,
49- Long : `generate generates gcloud commands
50-
51- generate generates gcloud command files from protobuf API specifications,
40+ func generateCommand () * cli.Command {
41+ return & cli.Command {
42+ Name : "generate" ,
43+ Usage : "generates gcloud commands" ,
44+ UsageText : "surfer generate <path to gcloud.yaml> --googleapis <path> [--out <path>]" ,
45+ Description : `generate generates gcloud command files from protobuf API specifications,
5246service config yaml, and gcloud.yaml.` ,
47+ Flags : []cli.Flag {
48+ & cli.StringFlag {
49+ Name : "googleapis" ,
50+ Value : "https://github.com/googleapis/googleapis" ,
51+ Usage : "URL or directory path to googleapis" ,
52+ },
53+ & cli.StringFlag {
54+ Name : "out" ,
55+ Value : "." ,
56+ Usage : "output directory" ,
57+ },
58+ },
5359 Action : func (ctx context.Context , cmd * cli.Command ) error {
54- args := cmd .Flags .Args ()
55- if len (args ) == 0 {
60+ if cmd .Args ().Len () == 0 {
5661 return fmt .Errorf ("path to gcloud.yaml is required" )
5762 }
58- config := args [0 ]
63+ config := cmd .Args ().First ()
64+ googleapis := cmd .String ("googleapis" )
65+ out := cmd .String ("out" )
5966 return gcloud .Generate (ctx , googleapis , config , out )
6067 },
6168 }
62- cmdGenerate .Init ()
63- cmdGenerate .Flags .StringVar (& googleapis , "googleapis" , "https://github.com/googleapis/googleapis" , "URL or directory path to googleapis" )
64- cmdGenerate .Flags .StringVar (& out , "out" , "." , "output directory" )
65- return cmdGenerate
6669}
0 commit comments