From 81523bc2ecd85362b7aa5025ad7b5969f3294b57 Mon Sep 17 00:00:00 2001 From: Matthew Slipper Date: Tue, 7 Oct 2025 17:27:45 -0600 Subject: [PATCH 1/2] op-deployer: Do not create cache directory on import --- op-deployer/pkg/cli/app.go | 6 ++++++ op-deployer/pkg/deployer/flags.go | 2 +- op-deployer/pkg/deployer/utils.go | 12 ++++++++---- op-deployer/pkg/deployer/utils_test.go | 2 +- op-deployer/pkg/deployer/verify/verifier.go | 2 +- 5 files changed, 17 insertions(+), 7 deletions(-) diff --git a/op-deployer/pkg/cli/app.go b/op-deployer/pkg/cli/app.go index 099be7767f9d8..f8ba866355d7c 100644 --- a/op-deployer/pkg/cli/app.go +++ b/op-deployer/pkg/cli/app.go @@ -20,6 +20,12 @@ func NewApp(versionWithMeta string) *cli.App { app.Name = "op-deployer" app.Usage = "Tool to configure and deploy OP Chains." app.Flags = cliapp.ProtectFlags(deployer.GlobalFlags) + app.Before = func(context *cli.Context) error { + if err := deployer.EnsureDefaultCacheDir(); err != nil { + return err + } + return nil + } app.Commands = []*cli.Command{ { Name: "init", diff --git a/op-deployer/pkg/deployer/flags.go b/op-deployer/pkg/deployer/flags.go index bcd3a71d49d74..c4518c88fa1a5 100644 --- a/op-deployer/pkg/deployer/flags.go +++ b/op-deployer/pkg/deployer/flags.go @@ -48,7 +48,7 @@ var ( Usage: "Cache directory. " + "If set, the deployer will attempt to cache downloaded artifacts in the specified directory.", EnvVars: PrefixEnvVar("CACHE_DIR"), - Value: EnsureDefaultCacheDir(), + Value: DefaultCacheDir(), } L1ChainIDFlag = &cli.Uint64Flag{ Name: L1ChainIDFlagName, diff --git a/op-deployer/pkg/deployer/utils.go b/op-deployer/pkg/deployer/utils.go index 382fdcffd0e73..d185227a82336 100644 --- a/op-deployer/pkg/deployer/utils.go +++ b/op-deployer/pkg/deployer/utils.go @@ -39,7 +39,7 @@ func cwd() string { return dir } -func EnsureDefaultCacheDir() string { +func DefaultCacheDir() string { var cacheDir string homeDir, err := os.UserHomeDir() @@ -50,9 +50,13 @@ func EnsureDefaultCacheDir() string { cacheDir = path.Join(homeDir, ".op-deployer/cache") } + return cacheDir +} + +func EnsureDefaultCacheDir() error { + cacheDir := DefaultCacheDir() if err := os.MkdirAll(cacheDir, 0755); err != nil { - panic(fmt.Sprintf("failed to create cache directory %s: %v", cacheDir, err)) + return fmt.Errorf("failed to create cache directory %s: %w", cacheDir, err) } - - return cacheDir + return nil } diff --git a/op-deployer/pkg/deployer/utils_test.go b/op-deployer/pkg/deployer/utils_test.go index a4ff0d5e7efbf..9e13ff5d4d7c2 100644 --- a/op-deployer/pkg/deployer/utils_test.go +++ b/op-deployer/pkg/deployer/utils_test.go @@ -7,6 +7,6 @@ import ( ) func TestEnsureDefaultCacheDir(t *testing.T) { - cacheDir := EnsureDefaultCacheDir() + cacheDir := DefaultCacheDir() require.NotNil(t, cacheDir) } diff --git a/op-deployer/pkg/deployer/verify/verifier.go b/op-deployer/pkg/deployer/verify/verifier.go index 0bc9e3c3bf187..fe865d5da7a27 100644 --- a/op-deployer/pkg/deployer/verify/verifier.go +++ b/op-deployer/pkg/deployer/verify/verifier.go @@ -88,7 +88,7 @@ func VerifyCLI(cliCtx *cli.Context) error { if err != nil { return fmt.Errorf("failed to parse l1 contracts release locator: %w", err) } - artifactsFS, err := artifacts.Download(ctx, locator, nil, deployer.EnsureDefaultCacheDir()) + artifactsFS, err := artifacts.Download(ctx, locator, nil, deployer.DefaultCacheDir()) if err != nil { return fmt.Errorf("failed to get artifacts: %w", err) } From caa425206c743b2208bded40f964ba70686e3d0d Mon Sep 17 00:00:00 2001 From: Matthew Slipper Date: Tue, 7 Oct 2025 17:32:11 -0600 Subject: [PATCH 2/2] create the one the flag makes --- op-deployer/pkg/cli/app.go | 2 +- op-deployer/pkg/deployer/utils.go | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/op-deployer/pkg/cli/app.go b/op-deployer/pkg/cli/app.go index f8ba866355d7c..10968280d09fc 100644 --- a/op-deployer/pkg/cli/app.go +++ b/op-deployer/pkg/cli/app.go @@ -21,7 +21,7 @@ func NewApp(versionWithMeta string) *cli.App { app.Usage = "Tool to configure and deploy OP Chains." app.Flags = cliapp.ProtectFlags(deployer.GlobalFlags) app.Before = func(context *cli.Context) error { - if err := deployer.EnsureDefaultCacheDir(); err != nil { + if err := deployer.CreateCacheDir(context.String(deployer.CacheDirFlagName)); err != nil { return err } return nil diff --git a/op-deployer/pkg/deployer/utils.go b/op-deployer/pkg/deployer/utils.go index d185227a82336..09691e71c6a4a 100644 --- a/op-deployer/pkg/deployer/utils.go +++ b/op-deployer/pkg/deployer/utils.go @@ -53,8 +53,7 @@ func DefaultCacheDir() string { return cacheDir } -func EnsureDefaultCacheDir() error { - cacheDir := DefaultCacheDir() +func CreateCacheDir(cacheDir string) error { if err := os.MkdirAll(cacheDir, 0755); err != nil { return fmt.Errorf("failed to create cache directory %s: %w", cacheDir, err) }