From f91015950fcb40a76a7d6821f101004f81beb06e Mon Sep 17 00:00:00 2001 From: Shunsuke Suzuki Date: Fri, 24 Feb 2023 00:07:17 +0900 Subject: [PATCH 1/2] feat(scaffold): support --deep --- pkg/cli/scaffold.go | 10 ++++++++-- pkg/scaffold/api.go | 22 +++++++++++++++------- 2 files changed, 23 insertions(+), 9 deletions(-) diff --git a/pkg/cli/scaffold.go b/pkg/cli/scaffold.go index 0d5bd775..c03d3f59 100644 --- a/pkg/cli/scaffold.go +++ b/pkg/cli/scaffold.go @@ -9,7 +9,7 @@ func (runner *Runner) newScaffoldCommand() *cli.Command { return &cli.Command{ Name: "scaffold", Usage: `Scaffold a package`, - UsageText: `$ aqua-registry scaffold `, + UsageText: `$ aqua-registry scaffold [--deep] `, Description: `Scaffold a package. aqua >= v1.14.0 is required. @@ -33,9 +33,15 @@ This tool does the following things. 6. aqua i `, Action: runner.scaffoldAction, + Flags: []cli.Flag{ + &cli.BoolFlag{ + Name: "deep", + Usage: "Resolve version_overrides. aqua >= v1.34.0 is required", + }, + }, } } func (runner *Runner) scaffoldAction(c *cli.Context) error { - return scaffold.Scaffold(c.Context, c.Args().Slice()...) //nolint:wrapcheck + return scaffold.Scaffold(c.Context, c.Bool("deep"), c.Args().Slice()...) //nolint:wrapcheck } diff --git a/pkg/scaffold/api.go b/pkg/scaffold/api.go index be6e00a0..07aa7f64 100644 --- a/pkg/scaffold/api.go +++ b/pkg/scaffold/api.go @@ -19,7 +19,7 @@ const ( filePermission os.FileMode = 0o644 ) -func Scaffold(ctx context.Context, pkgNames ...string) error { +func Scaffold(ctx context.Context, deep bool, pkgNames ...string) error { if len(pkgNames) != 1 { return errors.New(`usage: $ aqua-registry scaffold e.g. $ aqua-registry scaffold cli/cli`) @@ -31,7 +31,7 @@ e.g. $ aqua-registry scaffold cli/cli`) if err := os.MkdirAll(pkgDir, dirPermission); err != nil { return fmt.Errorf("create directories: %w", err) } - if err := aquaGR(ctx, pkgName, rgFile); err != nil { + if err := aquaGR(ctx, pkgName, pkgFile, rgFile, deep); err != nil { return err } fmt.Fprintln(os.Stderr, "Update registry.yaml") @@ -44,8 +44,10 @@ e.g. $ aqua-registry scaffold cli/cli`) if err := aquaG(ctx, pkgName); err != nil { return err } - if err := createPkgFile(ctx, pkgName, pkgFile); err != nil { - return err + if !deep { + if err := createPkgFile(ctx, pkgName, pkgFile); err != nil { + return err + } } if err := aquaI(ctx); err != nil { return err @@ -53,14 +55,20 @@ e.g. $ aqua-registry scaffold cli/cli`) return nil } -func aquaGR(ctx context.Context, pkgName, rgFilePath string) error { +func aquaGR(ctx context.Context, pkgName, pkgFilePath, rgFilePath string, deep bool) error { outFile, err := os.Create(rgFilePath) if err != nil { return fmt.Errorf("create a file %s: %w", rgFilePath, err) } defer outFile.Close() - fmt.Fprintf(os.Stderr, "+ aqua gr %s > %s\n", pkgName, rgFilePath) - cmd := exec.CommandContext(ctx, "aqua", "gr", pkgName) + var cmd *exec.Cmd + if deep { + fmt.Fprintf(os.Stderr, "+ aqua gr --deep --out-testdata %s %s > %s\n", pkgFilePath, pkgName, rgFilePath) + cmd = exec.CommandContext(ctx, "aqua", "gr", "--deep", "--out-testdata", pkgFilePath, pkgName) + } else { + fmt.Fprintf(os.Stderr, "+ aqua gr %s > %s\n", pkgName, rgFilePath) + cmd = exec.CommandContext(ctx, "aqua", "gr", pkgName) + } cmd.Stdout = outFile cmd.Stderr = os.Stderr if err := cmd.Run(); err != nil { From 1852f53e8638a9bc8e5635d59d88ffcb07ce6f49 Mon Sep 17 00:00:00 2001 From: Shunsuke Suzuki Date: Fri, 24 Feb 2023 00:11:31 +0900 Subject: [PATCH 2/2] chore(golangci-lint): increase timeout --- .golangci.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.golangci.yml b/.golangci.yml index 9bb9d5c7..400d66e9 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -1,4 +1,6 @@ --- +run: + timeout: 2m linters: enable-all: true disable: