From 7faa82de4a9f61b57dda808445c805ff9ab5b35c Mon Sep 17 00:00:00 2001 From: Manfred Touron <94029+moul@users.noreply.github.com> Date: Thu, 27 May 2021 22:55:13 +0000 Subject: [PATCH 1/5] chore: improve CLI flag help --- doctor.go | 4 ++++ main.go | 17 ++++++++++------- maintenance.go | 4 ++++ template-post-clone.go | 4 ++++ 4 files changed, 22 insertions(+), 7 deletions(-) diff --git a/doctor.go b/doctor.go index d3cc852..c8f6328 100644 --- a/doctor.go +++ b/doctor.go @@ -2,6 +2,7 @@ package main import ( "context" + "flag" "fmt" "github.com/hokaccha/go-prettyjson" @@ -12,6 +13,9 @@ import ( ) func doDoctor(ctx context.Context, args []string) error { + if len(args) < 1 { + return flag.ErrHelp + } paths := u.UniqueStrings(args) logger.Debug("doDoctor", zap.Any("opts", opts), zap.Strings("project", paths)) diff --git a/main.go b/main.go index 922ae8f..5ae2803 100644 --- a/main.go +++ b/main.go @@ -15,7 +15,9 @@ import ( func main() { if err := run(os.Args[1:]); err != nil { - fmt.Fprintf(os.Stderr, "error: %+v\n", err) + if err != flag.ErrHelp { + fmt.Fprintf(os.Stderr, "error: %+v\n", err) + } os.Exit(1) } } @@ -105,13 +107,14 @@ func run(args []string) error { } root := &ffcli.Command{ - Name: "repoman", - FlagSet: rootFs, + Name: "repoman", + FlagSet: rootFs, + ShortUsage: "repoman ", Subcommands: []*ffcli.Command{ - {Name: "doctor", Exec: doDoctor, FlagSet: doctorFs, ShortHelp: "perform various checks (read-only)"}, - {Name: "maintenance", Exec: doMaintenance, FlagSet: maintenanceFs, ShortHelp: "perform various maintenance tasks (write)"}, - {Name: "version", Exec: doVersion, FlagSet: versionFs, ShortHelp: "show version and build info"}, - {Name: "template-post-clone", Exec: doTemplatePostClone, FlagSet: templatePostCloneFs, ShortHelp: "replace template"}, + {Name: "doctor", Exec: doDoctor, FlagSet: doctorFs, ShortHelp: "perform various checks (read-only)", ShortUsage: "doctor [opts] "}, + {Name: "maintenance", Exec: doMaintenance, FlagSet: maintenanceFs, ShortHelp: "perform various maintenance tasks (write)", ShortUsage: "maintenance [opts] "}, + {Name: "version", Exec: doVersion, FlagSet: versionFs, ShortHelp: "show version and build info", ShortUsage: "version"}, + {Name: "template-post-clone", Exec: doTemplatePostClone, FlagSet: templatePostCloneFs, ShortHelp: "replace template", ShortUsage: "template-post-clone [opts] "}, }, Exec: func(ctx context.Context, args []string) error { return flag.ErrHelp diff --git a/maintenance.go b/maintenance.go index 3adc706..c10fa23 100644 --- a/maintenance.go +++ b/maintenance.go @@ -2,6 +2,7 @@ package main import ( "context" + "flag" "fmt" "os" "os/exec" @@ -13,6 +14,9 @@ import ( ) func doMaintenance(ctx context.Context, args []string) error { + if len(args) < 1 { + return flag.ErrHelp + } paths := u.UniqueStrings(args) g, ctx := errgroup.WithContext(ctx) logger.Debug("doMaintenance", zap.Any("opts", opts), zap.Strings("projects", paths)) diff --git a/template-post-clone.go b/template-post-clone.go index d37cb1a..8d2e6a1 100644 --- a/template-post-clone.go +++ b/template-post-clone.go @@ -2,6 +2,7 @@ package main import ( "context" + "flag" "fmt" "io/fs" "io/ioutil" @@ -18,6 +19,9 @@ import ( ) func doTemplatePostClone(ctx context.Context, args []string) error { + if len(args) < 1 { + return flag.ErrHelp + } paths := u.UniqueStrings(args) g, ctx := errgroup.WithContext(ctx) logger.Debug("doTemplatePostClone", zap.Any("opts", opts), zap.Strings("projects", paths)) From 6847c9460a25d596fcb16c2b1191c6e8ba0b59e3 Mon Sep 17 00:00:00 2001 From: Manfred Touron <94029+moul@users.noreply.github.com> Date: Thu, 27 May 2021 23:09:02 +0000 Subject: [PATCH 2/5] fix: split doctor into info command --- doctor.go | 9 +++------ info.go | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ main.go | 6 ++++++ 3 files changed, 57 insertions(+), 6 deletions(-) create mode 100644 info.go diff --git a/doctor.go b/doctor.go index c8f6328..61654be 100644 --- a/doctor.go +++ b/doctor.go @@ -5,7 +5,6 @@ import ( "flag" "fmt" - "github.com/hokaccha/go-prettyjson" "go.uber.org/multierr" "go.uber.org/zap" "golang.org/x/sync/errgroup" @@ -40,10 +39,8 @@ func doDoctorOnce(_ context.Context, path string) error { if err != nil { return fmt.Errorf("invalid project: %w", err) } - s, err := prettyjson.Marshal(project) - if err != nil { - return fmt.Errorf("json marshal error: %w", err) - } - fmt.Println(string(s)) + _ = project + // FIXME: perform more tests + fmt.Println("OK") return nil } diff --git a/info.go b/info.go new file mode 100644 index 0000000..9479a50 --- /dev/null +++ b/info.go @@ -0,0 +1,48 @@ +package main + +import ( + "context" + "flag" + "fmt" + + "github.com/hokaccha/go-prettyjson" + "go.uber.org/multierr" + "golang.org/x/sync/errgroup" + "moul.io/u" +) + +func doInfo(ctx context.Context, args []string) error { + if len(args) < 1 { + return flag.ErrHelp + } + paths := u.UniqueStrings(args) + // logger.Debug("doInfo", zap.Any("opts", opts), zap.Strings("project", paths)) + + var errs error + g, ctx := errgroup.WithContext(ctx) + for _, path := range paths { + path := path + g.Go(func() error { + err := doInfoOnce(ctx, path) + if err != nil { + errs = multierr.Append(errs, fmt.Errorf("%q: %w", path, err)) + } + return nil + }) + } + _ = g.Wait() + return errs +} + +func doInfoOnce(_ context.Context, path string) error { + project, err := projectFromPath(path) + if err != nil { + return fmt.Errorf("invalid project: %w", err) + } + s, err := prettyjson.Marshal(project) + if err != nil { + return fmt.Errorf("json marshal error: %w", err) + } + fmt.Println(string(s)) + return nil +} diff --git a/main.go b/main.go index 5ae2803..77e6813 100644 --- a/main.go +++ b/main.go @@ -44,12 +44,14 @@ type Opts struct { TemplateOwner string } Doctor struct{} + Info struct{} Version struct{} } var ( rootFs = flag.NewFlagSet("", flag.ExitOnError) doctorFs = flag.NewFlagSet("doctor", flag.ExitOnError) + infoFs = flag.NewFlagSet("doctor", flag.ExitOnError) maintenanceFs = flag.NewFlagSet("maintenance", flag.ExitOnError) versionFs = flag.NewFlagSet("version", flag.ExitOnError) templatePostCloneFs = flag.NewFlagSet("tmeplate-post-clone", flag.ExitOnError) @@ -79,6 +81,9 @@ func run(args []string) error { // doctor setupRootFlags(doctorFs) + // info + setupRootFlags(infoFs) + // template-post-clone setupRootFlags(templatePostCloneFs) setupProjectFlags(templatePostCloneFs, &opts.TemplatePostClone.Project) @@ -111,6 +116,7 @@ func run(args []string) error { FlagSet: rootFs, ShortUsage: "repoman ", Subcommands: []*ffcli.Command{ + {Name: "info", Exec: doInfo, FlagSet: infoFs, ShortHelp: "get project info", ShortUsage: "info [opts] "}, {Name: "doctor", Exec: doDoctor, FlagSet: doctorFs, ShortHelp: "perform various checks (read-only)", ShortUsage: "doctor [opts] "}, {Name: "maintenance", Exec: doMaintenance, FlagSet: maintenanceFs, ShortHelp: "perform various maintenance tasks (write)", ShortUsage: "maintenance [opts] "}, {Name: "version", Exec: doVersion, FlagSet: versionFs, ShortHelp: "show version and build info", ShortUsage: "version"}, From e3e646c860d20daa4768580fbf861de53098630f Mon Sep 17 00:00:00 2001 From: Manfred Touron <94029+moul@users.noreply.github.com> Date: Thu, 27 May 2021 23:32:55 +0000 Subject: [PATCH 3/5] chore: add '-v' --- README.md | 10 +++++++--- go.mod | 4 ++-- go.sum | 15 ++++----------- info.go | 3 ++- main.go | 56 ++++++++++++++++++++++++------------------------------- rules.mk | 11 +++++++++++ 6 files changed, 50 insertions(+), 49 deletions(-) diff --git a/README.md b/README.md index d2a3a82..cee4048 100644 --- a/README.md +++ b/README.md @@ -24,20 +24,24 @@ ```console foo@bar:~$ repoman -h USAGE - repoman + repoman SUBCOMMANDS + info get project info doctor perform various checks (read-only) maintenance perform various maintenance tasks (write) version show version and build info template-post-clone replace template + +FLAGS + -v false verbose mode ``` [embedmd]:# (.tmp/usage-maintenance.txt console) ```console foo@bar:~$ repoman maintenance -h USAGE - maintenance + maintenance [opts] FLAGS -bump-deps false bump dependencies @@ -53,7 +57,7 @@ FLAGS ```console foo@bar:~$ repoman template-post-clone -h USAGE - template-post-clone + template-post-clone [opts] FLAGS -checkout-main-branch true switch to the main branch before applying the changes diff --git a/go.mod b/go.mod index 2ce963b..f0eaae9 100644 --- a/go.mod +++ b/go.mod @@ -23,6 +23,6 @@ require ( moul.io/motd v1.0.0 moul.io/multipmuri v1.14.0 moul.io/srand v1.6.1 - moul.io/u v1.22.0 - moul.io/zapconfig v1.3.0 + moul.io/u v1.23.0 + moul.io/zapconfig v1.4.0 ) diff --git a/go.sum b/go.sum index 0d14ae9..4e96b30 100644 --- a/go.sum +++ b/go.sum @@ -100,10 +100,8 @@ github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+ github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/tailscale/depaware v0.0.0-20201102210757-e2f543bafb1d/go.mod h1:jissDaJNHiyV2tFdr3QyNEfsZrax/i2yQiSO+CljThI= github.com/tailscale/depaware v0.0.0-20201214215404-77d1e9757027 h1:lK99QQdH3yBWY6aGilF+IRlQIdmhzLrsEmF6JgN+Ryw= github.com/tailscale/depaware v0.0.0-20201214215404-77d1e9757027/go.mod h1:p9lPsd+cx33L3H9nNoecRRxPssFKUwwI50I3pZ0yT+8= github.com/xanzy/ssh-agent v0.3.0 h1:wUMzuKtKilRgBAD1sUb8gOwwRr2FGoBVumcjoOACClI= @@ -141,14 +139,12 @@ golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20191002035440-2ec189313ef0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210326060303-6b1517762897/go.mod h1:uSPa2vr4CLtc/ILN5odXGNXS6mhrKVzTaCXzk9m6W3k= golang.org/x/net v0.0.0-20210423184538-5f58ad60dda6 h1:0PC75Fz/kyMGhL0e1QnypqK2kQMqKt9csD1GnMJR+Zk= golang.org/x/net v0.0.0-20210423184538-5f58ad60dda6/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c h1:5KslGYwFpkhGh+Q16bwMP3cOontH8FOep7tGV86Y7SQ= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -162,7 +158,6 @@ golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -187,7 +182,6 @@ golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtn golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191108193012-7d206e10da11/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20201001230009-b5b87423c93b/go.mod h1:z6u4i615ZeAfBE4XtMziQW1fSVJXACjjbWkB/mvPzlU= golang.org/x/tools v0.0.0-20201211185031-d93e913c1a58/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.0 h1:po9/4sTYwZU9lPhi1tOrb4hCv3qrhiQ77LZfGa2OjwY= golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= @@ -224,8 +218,7 @@ moul.io/multipmuri v1.14.0 h1:zBVH1mbsYp4RoV1ubAT9zQK1LxhLIcDkat6VAyX6UrM= moul.io/multipmuri v1.14.0/go.mod h1:NinVrznZaHGUDU+4zfcL7L9WzMsHtb/kjLr4RaCbM+c= moul.io/srand v1.6.1 h1:SJ335F+54ivLdlH7wH52Rtyv0Ffos6DpsF5wu3ZVMXU= moul.io/srand v1.6.1/go.mod h1:P2uaZB+GFstFNo8sEj6/U8FRV1n25kD0LLckFpJ+qvc= -moul.io/u v1.19.0/go.mod h1:KaaCftEbxFzGdKI+elj1xeRVrlmZvd9oa5sDhJ3qzFU= -moul.io/u v1.22.0 h1:DFV8pbHXmxgJL1AcD5ohCS+jTGwMF92kq5g0k4rrQ78= -moul.io/u v1.22.0/go.mod h1:4Si+MVxJDNFfkqCOtLS6viqkvfeDGYTwykt2iyQ4MoY= -moul.io/zapconfig v1.3.0 h1:vS5EMh04bXxqp80a6b7mUMeCYn8pEN9kIe7ZHEKfep0= -moul.io/zapconfig v1.3.0/go.mod h1:9zIkSbBEmO7qv8n0h9RRPqOfiI4W7fWhDoZV2UxXxdI= +moul.io/u v1.23.0 h1:ZHfDUsUMfRG3e0A7gBYOo8SkKqe02Pc5zuQUVxq4+tg= +moul.io/u v1.23.0/go.mod h1:ytlQ/zt+Sdk+PFGEx+fpTivoa0ieA5yMo6itRswIWNQ= +moul.io/zapconfig v1.4.0 h1:J3ND5J3e/qQ++jlpqdSR1EtDNV+iujtvXgLsjy1uyq8= +moul.io/zapconfig v1.4.0/go.mod h1:bYTa5j7r82yPmSR6i5CcrPSVoWEbdpN7o9IgndSVby8= diff --git a/info.go b/info.go index 9479a50..4503414 100644 --- a/info.go +++ b/info.go @@ -7,6 +7,7 @@ import ( "github.com/hokaccha/go-prettyjson" "go.uber.org/multierr" + "go.uber.org/zap" "golang.org/x/sync/errgroup" "moul.io/u" ) @@ -16,7 +17,7 @@ func doInfo(ctx context.Context, args []string) error { return flag.ErrHelp } paths := u.UniqueStrings(args) - // logger.Debug("doInfo", zap.Any("opts", opts), zap.Strings("project", paths)) + logger.Debug("doInfo", zap.Any("opts", opts), zap.Strings("project", paths)) var errs error g, ctx := errgroup.WithContext(ctx) diff --git a/main.go b/main.go index 77e6813..a563a05 100644 --- a/main.go +++ b/main.go @@ -9,6 +9,7 @@ import ( "github.com/peterbourgon/ff/v3/ffcli" "go.uber.org/zap" + "go.uber.org/zap/zapcore" "moul.io/srand" "moul.io/zapconfig" ) @@ -31,6 +32,7 @@ type projectOpts struct { } type Opts struct { + Verbose bool Path string Maintenance struct { Project projectOpts @@ -65,9 +67,6 @@ func run(args []string) error { // setup flags { - setupRootFlags := func(fs *flag.FlagSet) { - // fs.StringVar(&opts.Path, "p", ".", "project's path") - } setupProjectFlags := func(fs *flag.FlagSet, opts *projectOpts) { fs.BoolVar(&opts.CheckoutMainBranch, "checkout-main-branch", true, "switch to the main branch before applying the changes") fs.BoolVar(&opts.Fetch, "fetch", true, "fetch origin before applying the changes") @@ -75,42 +74,16 @@ func run(args []string) error { fs.BoolVar(&opts.OpenPR, "open-pr", true, "open a new pull-request with the changes") fs.BoolVar(&opts.Reset, "reset", false, "reset dirty worktree before applying the changes") } - // root - setupRootFlags(rootFs) - - // doctor - setupRootFlags(doctorFs) - - // info - setupRootFlags(infoFs) - - // template-post-clone - setupRootFlags(templatePostCloneFs) + rootFs.BoolVar(&opts.Verbose, "v", false, "verbose mode") setupProjectFlags(templatePostCloneFs, &opts.TemplatePostClone.Project) templatePostCloneFs.StringVar(&opts.TemplatePostClone.TemplateName, "template-name", "golang-repo-template", "template's name (to change with the new project's name)") templatePostCloneFs.StringVar(&opts.TemplatePostClone.TemplateOwner, "template-owner", "moul", "template owner's name (to change with the new owner)") templatePostCloneFs.BoolVar(&opts.TemplatePostClone.RemoveGoBinary, "rm-go-binary", false, "whether to delete everything related to go binary and only keep a library") - // moul.io/ -> github.com/something/ - - // version - // n/a - - // maintenance - setupRootFlags(maintenanceFs) setupProjectFlags(maintenanceFs, &opts.Maintenance.Project) maintenanceFs.BoolVar(&opts.Maintenance.BumpDeps, "bump-deps", false, "bump dependencies") maintenanceFs.BoolVar(&opts.Maintenance.Standard, "std", true, "standard maintenance tasks") } - // init logger - { - var err error - logger, err = (&zapconfig.Configurator{}).SetPreset("light-console").Build() - if err != nil { - return err - } - } - root := &ffcli.Command{ Name: "repoman", FlagSet: rootFs, @@ -127,9 +100,28 @@ func run(args []string) error { }, } - if err := root.ParseAndRun(context.Background(), args); err != nil { - return err + if err := root.Parse(args); err != nil { + return fmt.Errorf("parse error: %w", err) + } + + // init logger + { + var err error + config := zapconfig.New(). + SetPreset("light-console") + if opts.Verbose { + config = config.SetLevel(zapcore.DebugLevel) + } else { + config = config.SetLevel(zapcore.InfoLevel) + } + logger, err = config.Build() + if err != nil { + return err + } } + if err := root.Run(context.Background()); err != nil { + return fmt.Errorf("run error: %w", err) + } return nil } diff --git a/rules.mk b/rules.mk index 6fdf52f..2d1e60a 100644 --- a/rules.mk +++ b/rules.mk @@ -214,6 +214,17 @@ FMT_STEPS += go.fmt #GENERATE_STEPS += go.depaware-update endif +## +## Tool +## + +ifneq ($(wildcard ./tool/lint/Makefile),) +.PHONY: tool.lint +tool.lint: + cd tool/lint; make +LINT_STEPS += tool.lint +endif + ## ## Gitattributes ## From faaaecf7f0fed9e92b0888672c17c856ea9e60f8 Mon Sep 17 00:00:00 2001 From: Manfred Touron <94029+moul@users.noreply.github.com> Date: Fri, 28 May 2021 00:20:22 +0000 Subject: [PATCH 4/5] feat: add more info in 'info' --- go.mod | 2 +- go.sum | 2 ++ project.go | 25 +++++++++++++++++++++++++ 3 files changed, 28 insertions(+), 1 deletion(-) diff --git a/go.mod b/go.mod index f0eaae9..2b5561d 100644 --- a/go.mod +++ b/go.mod @@ -23,6 +23,6 @@ require ( moul.io/motd v1.0.0 moul.io/multipmuri v1.14.0 moul.io/srand v1.6.1 - moul.io/u v1.23.0 + moul.io/u v1.24.0 moul.io/zapconfig v1.4.0 ) diff --git a/go.sum b/go.sum index 4e96b30..609e085 100644 --- a/go.sum +++ b/go.sum @@ -220,5 +220,7 @@ moul.io/srand v1.6.1 h1:SJ335F+54ivLdlH7wH52Rtyv0Ffos6DpsF5wu3ZVMXU= moul.io/srand v1.6.1/go.mod h1:P2uaZB+GFstFNo8sEj6/U8FRV1n25kD0LLckFpJ+qvc= moul.io/u v1.23.0 h1:ZHfDUsUMfRG3e0A7gBYOo8SkKqe02Pc5zuQUVxq4+tg= moul.io/u v1.23.0/go.mod h1:ytlQ/zt+Sdk+PFGEx+fpTivoa0ieA5yMo6itRswIWNQ= +moul.io/u v1.24.0 h1:USCFlvwr26ej2WMYTbS3XMsjq7UfziUpKQjH5kApIPY= +moul.io/u v1.24.0/go.mod h1:ytlQ/zt+Sdk+PFGEx+fpTivoa0ieA5yMo6itRswIWNQ= moul.io/zapconfig v1.4.0 h1:J3ND5J3e/qQ++jlpqdSR1EtDNV+iujtvXgLsjy1uyq8= moul.io/zapconfig v1.4.0/go.mod h1:bYTa5j7r82yPmSR6i5CcrPSVoWEbdpN7o9IgndSVby8= diff --git a/project.go b/project.go index f5e515b..1868b53 100644 --- a/project.go +++ b/project.go @@ -28,6 +28,13 @@ type project struct { HTMLURL string RepoName string RepoOwner string + Metadata struct { + HasGo *bool `json:"HasGo,omitempty"` + HasDocker *bool `json:"HasDocker,omitempty"` + HasLibrary *bool `json:"HasLibrary,omitempty"` + HasBinary *bool `json:"HasBinary,omitempty"` + // GoImport string `json:"GoImport,omitempty"` // moul.io/xxx + } `json:"Metadata,omitempty"` head *plumbing.Reference repo *git.Repository @@ -131,6 +138,24 @@ func projectFromPath(path string) (*project, error) { if err := project.updateStatus(); err != nil { return nil, fmt.Errorf("update status: %w", err) } + + // metadata + { + // guess it + if u.FileExists(filepath.Join(project.Git.Root, "Dockerfile")) { + project.Git.Metadata.HasDocker = u.BoolPtr(true) + project.Git.Metadata.HasBinary = u.BoolPtr(true) + } + goFiles, err := filepath.Glob(filepath.Join(project.Git.Root, "*.go")) + if err != nil { + return nil, fmt.Errorf("glob: %w", err) + } + project.Git.Metadata.HasGo = u.BoolPtr(len(goFiles) > 0) + project.Git.Metadata.HasLibrary = u.BoolPtr(*project.Git.Metadata.HasGo && !*project.Git.Metadata.HasBinary) + + // override it from metadata file + // FIXME: TODO + } } else { logger.Warn("project not within a git directory", zap.String("path", path)) } From 6b4ff0be97f286bbd971e5475dc9f43d58fa187f Mon Sep 17 00:00:00 2001 From: Manfred Touron <94029+moul@users.noreply.github.com> Date: Fri, 28 May 2021 00:21:21 +0000 Subject: [PATCH 5/5] chore: regenerate --- depaware.txt | 56 +++++++++++++++++++++++++++++++--------------------- go.mod | 10 +++++++--- go.sum | 25 ++++++++++++----------- 3 files changed, 55 insertions(+), 36 deletions(-) diff --git a/depaware.txt b/depaware.txt index e9acd31..ac0697d 100644 --- a/depaware.txt +++ b/depaware.txt @@ -1,8 +1,24 @@ moul.io/repoman dependencies: (generated by github.com/tailscale/depaware) - github.com/BurntSushi/toml from github.com/github/hub/github + github.com/BurntSushi/toml from github.com/github/hub/v2/github W 💣 github.com/Microsoft/go-winio from github.com/xanzy/ssh-agent W github.com/Microsoft/go-winio/pkg/guid from github.com/Microsoft/go-winio + github.com/ProtonMail/go-crypto/bitcurves from github.com/ProtonMail/go-crypto/openpgp/internal/ecc + github.com/ProtonMail/go-crypto/brainpool from github.com/ProtonMail/go-crypto/openpgp/internal/ecc + github.com/ProtonMail/go-crypto/eax from github.com/ProtonMail/go-crypto/openpgp/internal/algorithm + github.com/ProtonMail/go-crypto/internal/byteutil from github.com/ProtonMail/go-crypto/eax+ + github.com/ProtonMail/go-crypto/ocb from github.com/ProtonMail/go-crypto/openpgp/internal/algorithm + github.com/ProtonMail/go-crypto/openpgp from github.com/go-git/go-git/v5+ + github.com/ProtonMail/go-crypto/openpgp/aes/keywrap from github.com/ProtonMail/go-crypto/openpgp/ecdh + github.com/ProtonMail/go-crypto/openpgp/armor from github.com/ProtonMail/go-crypto/openpgp + github.com/ProtonMail/go-crypto/openpgp/ecdh from github.com/ProtonMail/go-crypto/openpgp+ + github.com/ProtonMail/go-crypto/openpgp/elgamal from github.com/ProtonMail/go-crypto/openpgp/packet + github.com/ProtonMail/go-crypto/openpgp/errors from github.com/ProtonMail/go-crypto/openpgp+ + github.com/ProtonMail/go-crypto/openpgp/internal/algorithm from github.com/ProtonMail/go-crypto/openpgp+ + github.com/ProtonMail/go-crypto/openpgp/internal/ecc from github.com/ProtonMail/go-crypto/openpgp/ecdh+ + github.com/ProtonMail/go-crypto/openpgp/internal/encoding from github.com/ProtonMail/go-crypto/openpgp/internal/ecc+ + github.com/ProtonMail/go-crypto/openpgp/packet from github.com/ProtonMail/go-crypto/openpgp + github.com/ProtonMail/go-crypto/openpgp/s2k from github.com/ProtonMail/go-crypto/openpgp+ github.com/emirpasic/gods/containers from github.com/emirpasic/gods/lists+ github.com/emirpasic/gods/lists from github.com/emirpasic/gods/lists/arraylist github.com/emirpasic/gods/lists/arraylist from github.com/emirpasic/gods/trees/binaryheap @@ -10,12 +26,12 @@ moul.io/repoman dependencies: (generated by github.com/tailscale/depaware) github.com/emirpasic/gods/trees/binaryheap from github.com/go-git/go-git/v5/plumbing/object github.com/emirpasic/gods/utils from github.com/emirpasic/gods/containers+ github.com/fatih/color from github.com/hokaccha/go-prettyjson - github.com/github/hub/cmd from github.com/github/hub/git+ - github.com/github/hub/git from github.com/github/hub/github+ - github.com/github/hub/github from moul.io/repoman - github.com/github/hub/ui from github.com/github/hub/cmd+ - github.com/github/hub/utils from github.com/github/hub/cmd+ - github.com/github/hub/version from github.com/github/hub/github + github.com/github/hub/v2/cmd from github.com/github/hub/v2/git+ + github.com/github/hub/v2/git from github.com/github/hub/v2/github + github.com/github/hub/v2/github from moul.io/repoman + github.com/github/hub/v2/ui from github.com/github/hub/v2/cmd+ + github.com/github/hub/v2/utils from github.com/github/hub/v2/github + github.com/github/hub/v2/version from github.com/github/hub/v2/github github.com/go-git/gcfg from github.com/go-git/go-git/v5/plumbing/format/config github.com/go-git/gcfg/scanner from github.com/go-git/gcfg github.com/go-git/gcfg/token from github.com/go-git/gcfg+ @@ -70,7 +86,7 @@ moul.io/repoman dependencies: (generated by github.com/tailscale/depaware) github.com/hokaccha/go-prettyjson from moul.io/repoman github.com/imdario/mergo from github.com/go-git/go-git/v5 github.com/jbenet/go-context/io from github.com/go-git/go-git/v5/utils/ioutil - github.com/kballard/go-shellquote from github.com/github/hub/cmd + github.com/kballard/go-shellquote from github.com/github/hub/v2/github+ github.com/kevinburke/ssh_config from github.com/go-git/go-git/v5/plumbing/transport/ssh 💣 github.com/mattn/go-colorable from github.com/fatih/color+ 💣 github.com/mattn/go-isatty from github.com/fatih/color+ @@ -88,14 +104,15 @@ moul.io/repoman dependencies: (generated by github.com/tailscale/depaware) go.uber.org/zap/internal/exit from go.uber.org/zap/zapcore go.uber.org/zap/zapcore from go.uber.org/zap+ gopkg.in/warnings.v0 from github.com/go-git/gcfg - gopkg.in/yaml.v2 from github.com/github/hub/github + gopkg.in/yaml.v2 from github.com/github/hub/v2/github moul.io/banner from moul.io/motd moul.io/motd from moul.io/repoman + moul.io/multipmuri from moul.io/repoman moul.io/srand from moul.io/repoman moul.io/u from moul.io/repoman moul.io/zapconfig from moul.io/repoman golang.org/x/crypto/blowfish from golang.org/x/crypto/ssh/internal/bcrypt_pbkdf - golang.org/x/crypto/cast5 from golang.org/x/crypto/openpgp/packet + golang.org/x/crypto/cast5 from github.com/ProtonMail/go-crypto/openpgp/internal/algorithm golang.org/x/crypto/chacha20 from golang.org/x/crypto/chacha20poly1305+ golang.org/x/crypto/chacha20poly1305 from crypto/tls golang.org/x/crypto/cryptobyte from crypto/ecdsa+ @@ -103,27 +120,22 @@ moul.io/repoman dependencies: (generated by github.com/tailscale/depaware) golang.org/x/crypto/curve25519 from crypto/tls+ golang.org/x/crypto/ed25519 from golang.org/x/crypto/ssh+ golang.org/x/crypto/hkdf from crypto/tls - golang.org/x/crypto/openpgp from github.com/go-git/go-git/v5+ - golang.org/x/crypto/openpgp/armor from golang.org/x/crypto/openpgp - golang.org/x/crypto/openpgp/elgamal from golang.org/x/crypto/openpgp/packet - golang.org/x/crypto/openpgp/errors from golang.org/x/crypto/openpgp+ - golang.org/x/crypto/openpgp/packet from golang.org/x/crypto/openpgp - golang.org/x/crypto/openpgp/s2k from golang.org/x/crypto/openpgp+ golang.org/x/crypto/poly1305 from golang.org/x/crypto/chacha20poly1305+ golang.org/x/crypto/ssh from github.com/go-git/go-git/v5/plumbing/transport/ssh+ golang.org/x/crypto/ssh/agent from github.com/xanzy/ssh-agent golang.org/x/crypto/ssh/knownhosts from github.com/go-git/go-git/v5/plumbing/transport/ssh - golang.org/x/crypto/ssh/terminal from github.com/github/hub/github + golang.org/x/crypto/ssh/terminal from github.com/github/hub/v2/github golang.org/x/net/context from github.com/jbenet/go-context/io golang.org/x/net/dns/dnsmessage from net golang.org/x/net/http/httpguts from net/http - golang.org/x/net/http/httpproxy from net/http + golang.org/x/net/http/httpproxy from net/http+ golang.org/x/net/http2/hpack from net/http golang.org/x/net/idna from golang.org/x/net/http/httpguts+ golang.org/x/net/proxy from github.com/go-git/go-git/v5/plumbing/transport/ssh D golang.org/x/net/route from net golang.org/x/sync/errgroup from moul.io/repoman golang.org/x/sys/cpu from golang.org/x/crypto/chacha20poly1305 + golang.org/x/sys/execabs from github.com/go-git/go-git/v5/plumbing/transport/file LD golang.org/x/sys/unix from github.com/go-git/go-billy/v5/osfs+ W golang.org/x/sys/windows from github.com/Microsoft/go-winio+ golang.org/x/term from golang.org/x/crypto/ssh/terminal @@ -134,7 +146,7 @@ moul.io/repoman dependencies: (generated by github.com/tailscale/depaware) archive/zip from moul.io/u bufio from archive/zip+ bytes from bufio+ - compress/bzip2 from golang.org/x/crypto/openpgp/packet + compress/bzip2 from github.com/ProtonMail/go-crypto/openpgp/packet compress/flate from archive/zip+ compress/gzip from net/http compress/zlib from github.com/go-git/go-git/v5/plumbing/format/objfile+ @@ -175,9 +187,9 @@ moul.io/repoman dependencies: (generated by github.com/tailscale/depaware) hash/adler32 from compress/zlib hash/crc32 from archive/zip+ html from github.com/sergi/go-diff/diffmatchpatch - image from golang.org/x/crypto/openpgp/packet+ + image from github.com/ProtonMail/go-crypto/openpgp/packet+ image/color from image+ - image/jpeg from golang.org/x/crypto/openpgp/packet + image/jpeg from github.com/ProtonMail/go-crypto/openpgp/packet io from archive/zip+ io/fs from archive/zip+ io/ioutil from crypto/x509+ @@ -198,7 +210,7 @@ moul.io/repoman dependencies: (generated by github.com/tailscale/depaware) os from archive/zip+ os/exec from moul.io/u+ os/signal from moul.io/u+ - os/user from github.com/go-git/go-git/v5/plumbing/format/gitignore+ + os/user from github.com/go-git/go-git/v5/plumbing/transport/ssh+ path from archive/zip+ path/filepath from crypto/x509+ reflect from crypto/x509+ diff --git a/go.mod b/go.mod index 2b5561d..ffc17ed 100644 --- a/go.mod +++ b/go.mod @@ -4,21 +4,25 @@ go 1.13 require ( github.com/Microsoft/go-winio v0.5.0 // indirect - github.com/fatih/color v1.10.0 // indirect + github.com/ProtonMail/go-crypto v0.0.0-20210512092938-c05353c2d58c // indirect + github.com/fatih/color v1.12.0 // indirect github.com/github/hub/v2 v2.14.3-0.20210319163717-c8e68d548a39 github.com/go-git/go-git/v5 v5.4.1 github.com/hokaccha/go-prettyjson v0.0.0-20210113012101-fb4e108d2519 github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 // indirect github.com/kevinburke/ssh_config v1.1.0 // indirect + github.com/mattn/go-isatty v0.0.13 // indirect github.com/peterbourgon/ff/v3 v3.0.0 github.com/sergi/go-diff v1.2.0 // indirect github.com/tailscale/depaware v0.0.0-20201214215404-77d1e9757027 go.uber.org/goleak v1.1.10 go.uber.org/multierr v1.7.0 go.uber.org/zap v1.17.0 - golang.org/x/net v0.0.0-20210423184538-5f58ad60dda6 // indirect + golang.org/x/crypto v0.0.0-20210513164829-c07d793c2f9a // indirect + golang.org/x/net v0.0.0-20210525063256-abc453219eb5 // indirect golang.org/x/sync v0.0.0-20210220032951-036812b2e83c - golang.org/x/term v0.0.0-20210422114643-f5beecf764ed // indirect + golang.org/x/sys v0.0.0-20210525143221-35b2ab0089ea // indirect + golang.org/x/term v0.0.0-20210503060354-a79de5458b56 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect moul.io/motd v1.0.0 moul.io/multipmuri v1.14.0 diff --git a/go.sum b/go.sum index 609e085..e11cf99 100644 --- a/go.sum +++ b/go.sum @@ -5,8 +5,9 @@ github.com/Microsoft/go-winio v0.4.14/go.mod h1:qXqCSQ3Xa7+6tgxaGTIe4Kpcdsi+P8jB github.com/Microsoft/go-winio v0.4.16/go.mod h1:XB6nPKklQyQ7GC9LdcBEcBl8PF76WugXOPRXwdLnMv0= github.com/Microsoft/go-winio v0.5.0 h1:Elr9Wn+sGKPlkaBvwu4mTrxtmOp3F3yV9qhaHbXGjwU= github.com/Microsoft/go-winio v0.5.0/go.mod h1:JPGBdM1cNvN/6ISo+n8V5iA4v8pBzdOpzfwIujj1a84= -github.com/ProtonMail/go-crypto v0.0.0-20210428141323-04723f9f07d7 h1:YoJbenK9C67SkzkDfmQuVln04ygHj3vjZfd9FL+GmQQ= github.com/ProtonMail/go-crypto v0.0.0-20210428141323-04723f9f07d7/go.mod h1:z4/9nQmJSSwwds7ejkxaJwO37dru3geImFUdJlaLzQo= +github.com/ProtonMail/go-crypto v0.0.0-20210512092938-c05353c2d58c h1:bNpaLLv2Y4kslsdkdCwAYu8Bak1aGVtxwi8Z/wy4Yuo= +github.com/ProtonMail/go-crypto v0.0.0-20210512092938-c05353c2d58c/go.mod h1:z4/9nQmJSSwwds7ejkxaJwO37dru3geImFUdJlaLzQo= github.com/acomagu/bufpipe v1.0.3 h1:fxAGrHZTgQ9w5QqVItgzwj235/uYZYgbXitB+dLupOk= github.com/acomagu/bufpipe v1.0.3/go.mod h1:mxdxdup/WdsKVreO5GpW4+M/1CE2sMG4jeGJ2sYmHc4= github.com/anmitsu/go-shlex v0.0.0-20161002113705-648efa622239 h1:kFOfPq6dUM1hTo4JG6LR5AXSUEsOjtdm0kw0FtQtMJA= @@ -20,8 +21,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/emirpasic/gods v1.12.0 h1:QAUIPSaCu4G+POclxeqb3F+WPpdKqFGlw36+yOzGlrg= github.com/emirpasic/gods v1.12.0/go.mod h1:YfzfFFoVP/catgzJb4IKIqXjX78Ha8FMSDh3ymbK86o= -github.com/fatih/color v1.10.0 h1:s36xzo75JdqLaaWoiEHk767eHiwo0598uUxyfiPkDsg= -github.com/fatih/color v1.10.0/go.mod h1:ELkj/draVOlAH/xkhN6mQ50Qd0MPOk5AAr3maGEBuJM= +github.com/fatih/color v1.12.0 h1:mRhaKNwANqRgUBGKmnI5ZxEk7QXmjQeCcuYFMX2bfcc= +github.com/fatih/color v1.12.0/go.mod h1:ELkj/draVOlAH/xkhN6mQ50Qd0MPOk5AAr3maGEBuJM= github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568 h1:BHsljHzVlRcyQhjrss6TZTdY2VfCqZPbv5k3iBFa2ZQ= github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc= github.com/github/hub/v2 v2.14.3-0.20210319163717-c8e68d548a39 h1:Nqrd7G12KJjSXJEiM+seOwSpsBpVVIyfNVU4lrWIdeU= @@ -69,8 +70,9 @@ github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaO github.com/mattn/go-colorable v0.1.8 h1:c1ghPdyEDarC70ftn0y+A/Ee++9zz8ljHG1b13eJ0s8= github.com/mattn/go-colorable v0.1.8/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= -github.com/mattn/go-isatty v0.0.12 h1:wuysRhFDzyxgEmMf5xjvJ2M9dZoWAXNNr5LSBS7uHXY= github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= +github.com/mattn/go-isatty v0.0.13 h1:qdl+GuBjcsKKDco5BsxPJlId98mSWNKqYA+Co0SC1yA= +github.com/mattn/go-isatty v0.0.13/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= github.com/mitchellh/go-homedir v0.0.0-20161203194507-b8bc1bf76747/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= @@ -126,8 +128,9 @@ golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= -golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b h1:7mWr3k41Qtv8XlltBkDkl8LoP3mpSgBW8BUoxtEdbXg= golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= +golang.org/x/crypto v0.0.0-20210513164829-c07d793c2f9a h1:kr2P4QFmQr29mSLA43kwrOcgcReGTfbE9N577tCTuBc= +golang.org/x/crypto v0.0.0-20210513164829-c07d793c2f9a/go.mod h1:P+XmwS30IXTQdn5tA2iutPOUgjI07+tq3H3K9MVA1s8= golang.org/x/lint v0.0.0-20190930215403-16217165b5de h1:5hukYrvBGR8/eNkX5mdUezrA6JiaEZDtJb9Ei+1LlBs= golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= @@ -142,8 +145,8 @@ golang.org/x/net v0.0.0-20191002035440-2ec189313ef0/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210326060303-6b1517762897/go.mod h1:uSPa2vr4CLtc/ILN5odXGNXS6mhrKVzTaCXzk9m6W3k= -golang.org/x/net v0.0.0-20210423184538-5f58ad60dda6 h1:0PC75Fz/kyMGhL0e1QnypqK2kQMqKt9csD1GnMJR+Zk= -golang.org/x/net v0.0.0-20210423184538-5f58ad60dda6/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk= +golang.org/x/net v0.0.0-20210525063256-abc453219eb5 h1:wjuX4b5yYQnEQHzd+CBcrcC6OVR2J1CN6mUy0oSxIPo= +golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c h1:5KslGYwFpkhGh+Q16bwMP3cOontH8FOep7tGV86Y7SQ= @@ -166,11 +169,12 @@ golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210324051608-47abb6519492/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210502180810-71e4cd670f79 h1:RX8C8PRZc2hTIod4ds8ij+/4RQX3AqhYj3uOHmyaz4E= golang.org/x/sys v0.0.0-20210502180810-71e4cd670f79/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210525143221-35b2ab0089ea h1:+WiDlPBBaO+h9vPNZi8uJ3k4BkKQB7Iow3aqwHVA5hI= +golang.org/x/sys v0.0.0-20210525143221-35b2ab0089ea/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/term v0.0.0-20210422114643-f5beecf764ed h1:Ei4bQjjpYUsS4efOUz+5Nz++IVkHk87n2zBA0NxBWc0= -golang.org/x/term v0.0.0-20210422114643-f5beecf764ed/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/term v0.0.0-20210503060354-a79de5458b56 h1:b8jxX3zqjpqb2LklXPzKSGJhzyxCOZSz8ncv8Nv+y7w= +golang.org/x/term v0.0.0-20210503060354-a79de5458b56/go.mod h1:tfny5GFUkzUvx4ps4ajbZsCe5lw1metzhBm9T3x7oIY= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6 h1:aRYxNxv6iGQlyVaZmk6ZgYEDa+Jg18DxebPSrd6bg1M= @@ -218,7 +222,6 @@ moul.io/multipmuri v1.14.0 h1:zBVH1mbsYp4RoV1ubAT9zQK1LxhLIcDkat6VAyX6UrM= moul.io/multipmuri v1.14.0/go.mod h1:NinVrznZaHGUDU+4zfcL7L9WzMsHtb/kjLr4RaCbM+c= moul.io/srand v1.6.1 h1:SJ335F+54ivLdlH7wH52Rtyv0Ffos6DpsF5wu3ZVMXU= moul.io/srand v1.6.1/go.mod h1:P2uaZB+GFstFNo8sEj6/U8FRV1n25kD0LLckFpJ+qvc= -moul.io/u v1.23.0 h1:ZHfDUsUMfRG3e0A7gBYOo8SkKqe02Pc5zuQUVxq4+tg= moul.io/u v1.23.0/go.mod h1:ytlQ/zt+Sdk+PFGEx+fpTivoa0ieA5yMo6itRswIWNQ= moul.io/u v1.24.0 h1:USCFlvwr26ej2WMYTbS3XMsjq7UfziUpKQjH5kApIPY= moul.io/u v1.24.0/go.mod h1:ytlQ/zt+Sdk+PFGEx+fpTivoa0ieA5yMo6itRswIWNQ=