diff --git a/cmd/compose/compose.go b/cmd/compose/compose.go index f91b0ec82..7cb105f6c 100644 --- a/cmd/compose/compose.go +++ b/cmd/compose/compose.go @@ -256,15 +256,8 @@ func (o *ProjectOptions) ToProject(dockerCli command.Cli, services []string, po } func (o *ProjectOptions) configureRemoteLoaders(dockerCli command.Cli, po []cli.ProjectOptionsFn) ([]cli.ProjectOptionsFn, error) { - git, err := remote.NewGitRemoteLoader(o.Offline) - if err != nil { - return nil, err - } - - oci, err := remote.NewOCIRemoteLoader(dockerCli, o.Offline) - if err != nil { - return nil, err - } + git := remote.NewGitRemoteLoader(o.Offline) + oci := remote.NewOCIRemoteLoader(dockerCli, o.Offline) po = append(po, cli.WithResourceLoader(git), cli.WithResourceLoader(oci)) return po, nil diff --git a/pkg/remote/git.go b/pkg/remote/git.go index 4f3d233de..3dcbf1307 100644 --- a/pkg/remote/git.go +++ b/pkg/remote/git.go @@ -45,19 +45,13 @@ func gitRemoteLoaderEnabled() (bool, error) { return false, nil } -func NewGitRemoteLoader(offline bool) (loader.ResourceLoader, error) { - cache, err := cacheDir() - if err != nil { - return nil, fmt.Errorf("initializing remote resource cache: %w", err) - } +func NewGitRemoteLoader(offline bool) loader.ResourceLoader { return gitRemoteLoader{ - cache: cache, offline: offline, - }, err + } } type gitRemoteLoader struct { - cache string offline bool } @@ -106,7 +100,12 @@ func (g gitRemoteLoader) Load(ctx context.Context, path string) (string, error) ref.Commit = sha } - local := filepath.Join(g.cache, ref.Commit) + cache, err := cacheDir() + if err != nil { + return "", fmt.Errorf("initializing remote resource cache: %w", err) + } + + local := filepath.Join(cache, ref.Commit) if _, err := os.Stat(local); os.IsNotExist(err) { if g.offline { return "", nil diff --git a/pkg/remote/oci.go b/pkg/remote/oci.go index a67bfb0a1..3c8b2c995 100644 --- a/pkg/remote/oci.go +++ b/pkg/remote/oci.go @@ -46,21 +46,14 @@ func ociRemoteLoaderEnabled() (bool, error) { return false, nil } -func NewOCIRemoteLoader(dockerCli command.Cli, offline bool) (loader.ResourceLoader, error) { - cache, err := cacheDir() - if err != nil { - return nil, fmt.Errorf("initializing remote resource cache: %w", err) - } - +func NewOCIRemoteLoader(dockerCli command.Cli, offline bool) loader.ResourceLoader { return ociRemoteLoader{ - cache: cache, dockerCli: dockerCli, offline: offline, - }, err + } } type ociRemoteLoader struct { - cache string dockerCli command.Cli offline bool } @@ -100,7 +93,12 @@ func (g ociRemoteLoader) Load(ctx context.Context, path string) (string, error) return "", err } - local := filepath.Join(g.cache, descriptor.Digest.Hex()) + cache, err := cacheDir() + if err != nil { + return "", fmt.Errorf("initializing remote resource cache: %w", err) + } + + local := filepath.Join(cache, descriptor.Digest.Hex()) composeFile := filepath.Join(local, "compose.yaml") if _, err = os.Stat(local); os.IsNotExist(err) { var manifest v1.Manifest