From 442ba99e29b2804ed479ed549e88c5690ed09bbf Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 18 Jul 2025 06:22:59 +0000 Subject: [PATCH 1/2] Update module github.com/urfave/cli/v2 to v3 --- go.mod | 1 + go.sum | 1 + 2 files changed, 2 insertions(+) diff --git a/go.mod b/go.mod index 5742ce6..02baae9 100644 --- a/go.mod +++ b/go.mod @@ -13,6 +13,7 @@ require ( github.com/manifoldco/promptui v0.9.0 github.com/pkg/errors v0.9.1 github.com/urfave/cli/v2 v2.27.7 + github.com/urfave/cli/v3 v3.3.8 github.com/uselagoon/machinery v0.0.34 golang.org/x/crypto v0.39.0 gopkg.in/yaml.v3 v3.0.1 diff --git a/go.sum b/go.sum index 435ad90..4c46079 100644 --- a/go.sum +++ b/go.sum @@ -135,6 +135,7 @@ github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOf github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/urfave/cli/v2 v2.27.7 h1:bH59vdhbjLv3LAvIu6gd0usJHgoTTPhCFib8qqOwXYU= github.com/urfave/cli/v2 v2.27.7/go.mod h1:CyNAG/xg+iAOg0N4MPGZqVmv2rCoP267496AOXUZjA4= +github.com/urfave/cli/v3 v3.3.8/go.mod h1:FJSKtM/9AiiTOJL4fJ6TbMUkxBXn7GO9guZqoZtpYpo= github.com/uselagoon/machinery v0.0.34 h1:5DsvXEyMeXmzQhjt11YH7+kZJueabovrwKTv0x7jQV8= github.com/uselagoon/machinery v0.0.34/go.mod h1:G0ujppuNR0BrtAnlmH8xDb9TDfayb4A36aeo0DYg7fQ= github.com/xanzy/ssh-agent v0.3.3 h1:+/15pJfg/RsTxqYcX6fHqOXZwwMP+2VyYWJeWM2qQFM= From 04bf3a7de80192e0b4c20fe8c3c2c2c6ec5db8a4 Mon Sep 17 00:00:00 2001 From: Guy Owen Date: Mon, 21 Jul 2025 15:18:07 +1000 Subject: [PATCH 2/2] Migrate urfave/cli impl from v2 to v3. --- cmd/deployment/metadata.go | 7 ++++--- cmd/elastic-cloud/delete-stale.go | 14 +++++++------- cmd/elastic-cloud/unassigned-shards.go | 4 ++-- cmd/kms/decrypt.go | 8 ++++---- cmd/kms/encrypt.go | 10 +++++----- cmd/project-map/by-backend.go | 15 ++++++++------- cmd/project-map/by-frontend.go | 15 ++++++++------- go.mod | 4 ---- go.sum | 9 +-------- internal/helpers/cli.go | 4 ++-- main.go | 23 ++++++++++++----------- 11 files changed, 53 insertions(+), 60 deletions(-) diff --git a/cmd/deployment/metadata.go b/cmd/deployment/metadata.go index b1b0b54..108939e 100644 --- a/cmd/deployment/metadata.go +++ b/cmd/deployment/metadata.go @@ -1,13 +1,14 @@ package deployment import ( + "context" "encoding/json" "fmt" "strings" "github.com/go-git/go-git/v5" errors "github.com/pkg/errors" - "github.com/urfave/cli/v2" + "github.com/urfave/cli/v3" ) type Metadata struct { @@ -22,7 +23,7 @@ type Deployment struct { Msg string `json:"msg"` } -func DeploymentMetadata(c *cli.Context) error { +func DeploymentMetadata(ctx context.Context, c *cli.Command) error { repo, err := git.PlainOpenWithOptions(".", &git.PlainOpenOptions{DetectDotGit: true}) if err != nil { return errors.Wrap(err, "unable to open git repository") @@ -65,7 +66,7 @@ func DeploymentMetadata(c *cli.Context) error { json, _ := json.Marshal(md) // Write string to stdout - fmt.Fprintf(c.App.Writer, "%s", json) + fmt.Fprintf(c.Writer, "%s", json) return nil } diff --git a/cmd/elastic-cloud/delete-stale.go b/cmd/elastic-cloud/delete-stale.go index 89b2d71..56019e9 100644 --- a/cmd/elastic-cloud/delete-stale.go +++ b/cmd/elastic-cloud/delete-stale.go @@ -13,7 +13,7 @@ import ( "github.com/elastic/go-elasticsearch/v9/esapi" "github.com/manifoldco/promptui" errors "github.com/pkg/errors" - "github.com/urfave/cli/v2" + "github.com/urfave/cli/v3" lagoon_client "github.com/uselagoon/machinery/api/lagoon/client" "github.com/uselagoon/machinery/api/schema" ) @@ -38,7 +38,7 @@ type Aliases struct { Aliases map[string]AliasAttr `json:"aliases"` } -func DeleteStaleIndices(c *cli.Context) error { +func DeleteStaleIndices(ctx context.Context, c *cli.Command) error { force := c.Bool("force") apiKey := c.String("deployment-api-key") cloudId := c.String("deployment-id") @@ -108,12 +108,12 @@ func DeleteStaleIndices(c *cli.Context) error { if len(aliasList[k].Aliases) > 0 { if !outputDeleteList { for aliasName := range aliasList[k].Aliases { - fmt.Fprintf(c.App.Writer, "The index %s is %d days old but will not be deleted because it has an associated alias %s\n", k, diffInDays, aliasName) + fmt.Fprintf(c.Writer, "The index %s is %d days old but will not be deleted because it has an associated alias %s\n", k, diffInDays, aliasName) } } } else { if !outputDeleteList { - fmt.Fprintf(c.App.Writer, "The index %s is %d days old and will be marked for deletion\n", k, diffInDays) + fmt.Fprintf(c.Writer, "The index %s is %d days old and will be marked for deletion\n", k, diffInDays) } deleteList = append(deleteList, k) } @@ -128,15 +128,15 @@ func DeleteStaleIndices(c *cli.Context) error { fmt.Printf("%+s", string(json)) } if force { - fmt.Fprint(c.App.Writer, "Deleting indices marked for deletion.") + fmt.Fprint(c.Writer, "Deleting indices marked for deletion.") statusCode, err := deleteIndices(client, deleteList, i) if err != nil { return errors.Wrap(err, "error deleting indices") } else { if statusCode == 200 { - fmt.Fprintf(c.App.Writer, "Deletion request failed. Status code %d", statusCode) + fmt.Fprintf(c.Writer, "Deletion request failed. Status code %d", statusCode) } else { - fmt.Fprintf(c.App.Writer, "%+v indices successfully deleted.", i) + fmt.Fprintf(c.Writer, "%+v indices successfully deleted.", i) } } } else { diff --git a/cmd/elastic-cloud/unassigned-shards.go b/cmd/elastic-cloud/unassigned-shards.go index f643e5a..e6ce196 100644 --- a/cmd/elastic-cloud/unassigned-shards.go +++ b/cmd/elastic-cloud/unassigned-shards.go @@ -8,7 +8,7 @@ import ( elasticsearch "github.com/elastic/go-elasticsearch/v9" "github.com/elastic/go-elasticsearch/v9/esapi" errors "github.com/pkg/errors" - "github.com/urfave/cli/v2" + "github.com/urfave/cli/v3" ) type Shard struct { @@ -19,7 +19,7 @@ type Shard struct { type Shards []Shard -func ListUnassignedShards(c *cli.Context) error { +func ListUnassignedShards(ctx context.Context, c *cli.Command) error { apiKey := c.String("deployment-api-key") cloudId := c.String("deployment-id") client, err := elasticsearch.NewClient(elasticsearch.Config{APIKey: apiKey, CloudID: cloudId}) diff --git a/cmd/kms/decrypt.go b/cmd/kms/decrypt.go index 3354300..a51bc35 100644 --- a/cmd/kms/decrypt.go +++ b/cmd/kms/decrypt.go @@ -8,11 +8,11 @@ import ( "github.com/aws/aws-sdk-go-v2/service/kms" "github.com/dpc-sdp/bay-cli/internal/helpers" errors "github.com/pkg/errors" - "github.com/urfave/cli/v2" + "github.com/urfave/cli/v3" ) -func Decrypt(c *cli.Context) error { - inputContents, err := io.ReadAll(c.App.Reader) +func Decrypt(ctx context.Context, c *cli.Command) error { + inputContents, err := io.ReadAll(c.Reader) if err != nil { return errors.Wrap(err, "unable to read input") } @@ -39,6 +39,6 @@ func Decrypt(c *cli.Context) error { return errors.Wrap(err, "error decrypting payload") } - io.WriteString(c.App.Writer, string(out.Plaintext)) + io.WriteString(c.Writer, string(out.Plaintext)) return nil } diff --git a/cmd/kms/encrypt.go b/cmd/kms/encrypt.go index 51ef0a7..5043a65 100644 --- a/cmd/kms/encrypt.go +++ b/cmd/kms/encrypt.go @@ -10,13 +10,13 @@ import ( "github.com/aws/aws-sdk-go-v2/service/kms" "github.com/dpc-sdp/bay-cli/internal/helpers" errors "github.com/pkg/errors" - "github.com/urfave/cli/v2" + "github.com/urfave/cli/v3" ) -func Encrypt(c *cli.Context) error { - logger := log.New(c.App.ErrWriter, "", log.LstdFlags) +func Encrypt(ctx context.Context, c *cli.Command) error { + logger := log.New(c.ErrWriter, "", log.LstdFlags) - inputContents, err := io.ReadAll(c.App.Reader) + inputContents, err := io.ReadAll(c.Reader) if err != nil { return errors.Wrap(err, "unable to read input") } @@ -51,6 +51,6 @@ func Encrypt(c *cli.Context) error { return errors.Wrap(err, "error encrypting payload with key") } - io.WriteString(c.App.Writer, b64.StdEncoding.EncodeToString(out.CiphertextBlob)) + io.WriteString(c.Writer, b64.StdEncoding.EncodeToString(out.CiphertextBlob)) return nil } diff --git a/cmd/project-map/by-backend.go b/cmd/project-map/by-backend.go index 4432aa8..7615e5a 100644 --- a/cmd/project-map/by-backend.go +++ b/cmd/project-map/by-backend.go @@ -1,13 +1,14 @@ package project_map import ( + "context" "encoding/json" "fmt" "io" "strings" "github.com/alexeyco/simpletable" - "github.com/urfave/cli/v2" + "github.com/urfave/cli/v3" "github.com/uselagoon/machinery/api/schema" "github.com/dpc-sdp/bay-cli/internal/helpers" @@ -22,7 +23,7 @@ type ByBackendResponseItem struct { FrontEnds []string `json:"frontends"` } -func ByBackend(c *cli.Context) error { +func ByBackend(ctx context.Context, c *cli.Command) error { client, err := helpers.NewLagoonClient(nil) if err != nil { return err @@ -34,7 +35,7 @@ func ByBackend(c *cli.Context) error { args := make([]string, 0) if all { projects := make([]schema.ProjectMetadata, 0) - err = client.ProjectsByMetadata(c.Context, "type", "tide", &projects) + err = client.ProjectsByMetadata(ctx, "type", "tide", &projects) if err != nil { return err } @@ -50,13 +51,13 @@ func ByBackend(c *cli.Context) error { for _, v := range args { project := &schema.ProjectMetadata{} - err := client.ProjectByNameMetadata(c.Context, v, project) + err := client.ProjectByNameMetadata(ctx, v, project) if err != nil { return err } projects := make([]schema.ProjectMetadata, 0) - err = client.ProjectsByMetadata(c.Context, "backend-project", v, &projects) + err = client.ProjectsByMetadata(ctx, "backend-project", v, &projects) if err != nil { return err } @@ -75,7 +76,7 @@ func ByBackend(c *cli.Context) error { if c.String("output") == "json" { a, _ := json.Marshal(output) - io.WriteString(c.App.Writer, string(a)) + io.WriteString(c.Writer, string(a)) } else { table := simpletable.New() @@ -94,7 +95,7 @@ func ByBackend(c *cli.Context) error { table.Body.Cells = append(table.Body.Cells, r) } table.SetStyle(simpletable.StyleCompactLite) - io.WriteString(c.App.Writer, table.String()) + io.WriteString(c.Writer, table.String()) } return nil diff --git a/cmd/project-map/by-frontend.go b/cmd/project-map/by-frontend.go index 1ed3b77..4627981 100644 --- a/cmd/project-map/by-frontend.go +++ b/cmd/project-map/by-frontend.go @@ -1,10 +1,11 @@ package project_map import ( + "context" "encoding/json" "fmt" "github.com/alexeyco/simpletable" - "github.com/urfave/cli/v2" + "github.com/urfave/cli/v3" "github.com/uselagoon/machinery/api/schema" "io" @@ -15,7 +16,7 @@ type ByFrontendResponse struct { Items map[string]string `json:"items"` } -func ByFrontend(c *cli.Context) error { +func ByFrontend(ctx context.Context, c *cli.Command) error { client, err := helpers.NewLagoonClient(nil) if err != nil { return err @@ -30,7 +31,7 @@ func ByFrontend(c *cli.Context) error { if all { // @todo once all frontends are on ripple 2, remove the obsolete check. rippleProjects := make([]schema.ProjectMetadata, 0) - err = client.ProjectsByMetadata(c.Context, "type", "ripple", &rippleProjects) + err = client.ProjectsByMetadata(ctx, "type", "ripple", &rippleProjects) if err != nil { return err } @@ -39,7 +40,7 @@ func ByFrontend(c *cli.Context) error { } ripple2Projects := make([]schema.ProjectMetadata, 0) - err = client.ProjectsByMetadata(c.Context, "type", "ripple2", &ripple2Projects) + err = client.ProjectsByMetadata(ctx, "type", "ripple2", &ripple2Projects) if err != nil { return err } @@ -57,7 +58,7 @@ func ByFrontend(c *cli.Context) error { for _, v := range args { project := &schema.ProjectMetadata{} - err := client.ProjectByNameMetadata(c.Context, v, project) + err := client.ProjectByNameMetadata(ctx, v, project) if err != nil { return err } @@ -70,7 +71,7 @@ func ByFrontend(c *cli.Context) error { if c.String("output") == "json" { a, _ := json.Marshal(output) - io.WriteString(c.App.Writer, string(a)) + io.WriteString(c.Writer, string(a)) } else { table := simpletable.New() @@ -89,7 +90,7 @@ func ByFrontend(c *cli.Context) error { table.Body.Cells = append(table.Body.Cells, r) } table.SetStyle(simpletable.StyleCompactLite) - io.WriteString(c.App.Writer, table.String()) + io.WriteString(c.Writer, table.String()) } return nil diff --git a/go.mod b/go.mod index 02baae9..859fcb6 100644 --- a/go.mod +++ b/go.mod @@ -12,7 +12,6 @@ require ( github.com/go-git/go-git/v5 v5.16.2 github.com/manifoldco/promptui v0.9.0 github.com/pkg/errors v0.9.1 - github.com/urfave/cli/v2 v2.27.7 github.com/urfave/cli/v3 v3.3.8 github.com/uselagoon/machinery v0.0.34 golang.org/x/crypto v0.39.0 @@ -37,7 +36,6 @@ require ( github.com/aws/smithy-go v1.22.4 // indirect github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e // indirect github.com/cloudflare/circl v1.6.1 // indirect - github.com/cpuguy83/go-md2man/v2 v2.0.7 // indirect github.com/cyphar/filepath-securejoin v0.4.1 // indirect github.com/elastic/elastic-transport-go/v8 v8.7.0 // indirect github.com/emirpasic/gods v1.18.1 // indirect @@ -56,11 +54,9 @@ require ( github.com/onsi/gomega v1.36.1 // indirect github.com/pjbgf/sha1cd v0.3.2 // indirect github.com/rivo/uniseg v0.4.7 // indirect - github.com/russross/blackfriday/v2 v2.1.0 // indirect github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3 // indirect github.com/skeema/knownhosts v1.3.1 // indirect github.com/xanzy/ssh-agent v0.3.3 // indirect - github.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1 // indirect go.opentelemetry.io/auto/sdk v1.1.0 // indirect go.opentelemetry.io/otel v1.35.0 // indirect go.opentelemetry.io/otel/metric v1.35.0 // indirect diff --git a/go.sum b/go.sum index 4c46079..d28e0c4 100644 --- a/go.sum +++ b/go.sum @@ -47,8 +47,6 @@ github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1 h1:q763qf9huN11kDQavWs github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= github.com/cloudflare/circl v1.6.1 h1:zqIqSPIndyBh1bjLVVDHMPpVKqp8Su/V+6MeDzzQBQ0= github.com/cloudflare/circl v1.6.1/go.mod h1:uddAzsPgqdMAYatqJ0lsjX1oECcQLIlRpzZh3pJrofs= -github.com/cpuguy83/go-md2man/v2 v2.0.7 h1:zbFlGlXEAKlwXpmvle3d8Oe3YnkKIK4xSRTd3sHPnBo= -github.com/cpuguy83/go-md2man/v2 v2.0.7/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g= github.com/cyphar/filepath-securejoin v0.4.1 h1:JyxxyPEaktOD+GAnqIqTf9A8tHyAG22rowi7HkoSU1s= github.com/cyphar/filepath-securejoin v0.4.1/go.mod h1:Sdj7gXlvMcPZsbhwhQ33GguGLDGQL7h7bg04C/+u9jI= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -121,8 +119,6 @@ github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ= github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= github.com/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0tI/otEQ= github.com/rogpeppe/go-internal v1.14.1/go.mod h1:MaRKkUm5W0goXpeCfT7UZI6fk/L7L7so1lCWt35ZSgc= -github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk= -github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3 h1:n661drycOFuPLCN3Uc8sB6B/s6Z4t2xvBgU1htSHuq8= github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3/go.mod h1:A0bzQcvG0E7Rwjx0REVgAGH58e96+X0MeOfepqsbeW4= github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= @@ -133,15 +129,12 @@ github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXf github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= -github.com/urfave/cli/v2 v2.27.7 h1:bH59vdhbjLv3LAvIu6gd0usJHgoTTPhCFib8qqOwXYU= -github.com/urfave/cli/v2 v2.27.7/go.mod h1:CyNAG/xg+iAOg0N4MPGZqVmv2rCoP267496AOXUZjA4= +github.com/urfave/cli/v3 v3.3.8 h1:BzolUExliMdet9NlJ/u4m5vHSotJ3PzEqSAZ1oPMa/E= github.com/urfave/cli/v3 v3.3.8/go.mod h1:FJSKtM/9AiiTOJL4fJ6TbMUkxBXn7GO9guZqoZtpYpo= github.com/uselagoon/machinery v0.0.34 h1:5DsvXEyMeXmzQhjt11YH7+kZJueabovrwKTv0x7jQV8= github.com/uselagoon/machinery v0.0.34/go.mod h1:G0ujppuNR0BrtAnlmH8xDb9TDfayb4A36aeo0DYg7fQ= github.com/xanzy/ssh-agent v0.3.3 h1:+/15pJfg/RsTxqYcX6fHqOXZwwMP+2VyYWJeWM2qQFM= github.com/xanzy/ssh-agent v0.3.3/go.mod h1:6dzNDKs0J9rVPHPhaGCukekBHKqfl+L3KghI1Bc68Uw= -github.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1 h1:gEOO8jv9F4OT7lGCjxCBTO/36wtF6j2nSip77qHd4x4= -github.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1/go.mod h1:Ohn+xnUBiLI6FVj/9LpzZWtj1/D6lUovWYBkxHVV3aM= go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA= go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A= go.opentelemetry.io/otel v1.35.0 h1:xKWKPxrxB6OtMCbmMY021CqC45J+3Onta9MqjhnusiQ= diff --git a/internal/helpers/cli.go b/internal/helpers/cli.go index 09e03fa..0398378 100644 --- a/internal/helpers/cli.go +++ b/internal/helpers/cli.go @@ -1,8 +1,8 @@ package helpers -import "github.com/urfave/cli/v2" +import "github.com/urfave/cli/v3" -func GetAllArgs(c *cli.Context) []string { +func GetAllArgs(c *cli.Command) []string { args := make([]string, 0) i := 0 l := c.Args().Len() diff --git a/main.go b/main.go index d890227..72928dd 100644 --- a/main.go +++ b/main.go @@ -1,11 +1,12 @@ package main import ( + "context" "log" "os" "github.com/dpc-sdp/bay-cli/cmd/kms" - cli "github.com/urfave/cli/v2" + cli "github.com/urfave/cli/v3" deployment "github.com/dpc-sdp/bay-cli/cmd/deployment" elastic_cloud "github.com/dpc-sdp/bay-cli/cmd/elastic-cloud" @@ -18,14 +19,14 @@ const ( ) func main() { - app := &cli.App{ + app := &cli.Command{ Name: "bay", Usage: "CLI tool to interact with the Bay container platform", Commands: []*cli.Command{ { Name: "kms", Usage: "interact with KMS encryption service", - Subcommands: []*cli.Command{ + Commands: []*cli.Command{ { Name: "encrypt", Usage: "encrypt data", @@ -34,13 +35,13 @@ func main() { &cli.StringFlag{ Name: "project", Usage: "Name of lagoon project", - EnvVars: []string{EnvLagoonProject}, + Sources: cli.EnvVars(EnvLagoonProject), Required: true, }, &cli.StringFlag{ Name: "key", Usage: "Name of key", - EnvVars: []string{EnvLagoonEnvironmentType}, + Sources: cli.EnvVars(EnvLagoonEnvironmentType), Required: true, }, }, @@ -57,7 +58,7 @@ func main() { { Name: "project-map", Usage: "commands to show relationships between projects", - Subcommands: []*cli.Command{ + Commands: []*cli.Command{ { Name: "by-backend", Usage: "shows all frontends that connect to a specific backend", @@ -97,7 +98,7 @@ func main() { { Name: "deployment", Usage: "commands for deployment actions", - Subcommands: []*cli.Command{ + Commands: []*cli.Command{ { Name: "metadata", Usage: "generates a json object with deployment metadata", @@ -115,16 +116,16 @@ func main() { Name: "deployment-id", Usage: "cloud deployment ID as listed on the Elastic Cloud 'manage' page", Required: true, - EnvVars: []string{"EC_DEPLOYMENT_CLOUD_ID"}, + Sources: cli.EnvVars("EC_DEPLOYMENT_CLOUD_ID"), }, &cli.StringFlag{ Name: "deployment-api-key", Required: true, Hidden: true, - EnvVars: []string{"EC_DEPLOYMENT_API_KEY"}, + Sources: cli.EnvVars("EC_DEPLOYMENT_API_KEY"), }, }, - Subcommands: []*cli.Command{ + Commands: []*cli.Command{ { Name: "unassigned-shards", Usage: "Prints unassigned shards in JSON format", @@ -158,7 +159,7 @@ func main() { }, } - if err := app.Run(os.Args); err != nil { + if err := app.Run(context.Background(), os.Args); err != nil { log.Fatal(err) } }