From 45824d6c726c523ddb56519e143181a6beefaa58 Mon Sep 17 00:00:00 2001 From: Darren Shepherd Date: Wed, 6 Mar 2024 21:03:49 -0700 Subject: [PATCH] Fix panic when repos aren't used --- pkg/engine/cmd.go | 2 -- pkg/repos/get.go | 5 +++-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/pkg/engine/cmd.go b/pkg/engine/cmd.go index 0159811a..03fc0fb4 100644 --- a/pkg/engine/cmd.go +++ b/pkg/engine/cmd.go @@ -8,7 +8,6 @@ import ( "io" "os" "os/exec" - "path/filepath" "sort" "strings" "sync/atomic" @@ -81,7 +80,6 @@ func (e *Engine) getRuntimeEnv(ctx context.Context, tool types.Tool, cmd, env [] if err != nil { return nil, err } - workdir = filepath.Join(workdir, tool.Source.Repo.Path) } return append(env, "GPTSCRIPT_TOOL_DIR="+workdir), nil } diff --git a/pkg/repos/get.go b/pkg/repos/get.go index 8de6ca1d..43c7e160 100644 --- a/pkg/repos/get.go +++ b/pkg/repos/get.go @@ -53,12 +53,13 @@ func New(cacheDir string, runtimes ...Runtime) *Manager { func (m *Manager) setup(ctx context.Context, runtime Runtime, tool types.Tool, env []string) (string, []string, error) { target := filepath.Join(m.storageDir, tool.Source.Repo.Revision, runtime.ID()) + targetFinal := filepath.Join(target, tool.Source.Repo.Path) doneFile := target + ".done" envData, err := os.ReadFile(doneFile) if err == nil { var savedEnv []string if err := json.Unmarshal(envData, &savedEnv); err == nil { - return target, append(env, savedEnv...), nil + return targetFinal, append(env, savedEnv...), nil } } else if !errors.Is(err, fs.ErrNotExist) { return "", nil, err @@ -88,7 +89,7 @@ func (m *Manager) setup(ctx context.Context, runtime Runtime, tool types.Tool, e return "", nil, err } - return target, append(env, newEnv...), os.Rename(doneFile+".tmp", doneFile) + return targetFinal, append(env, newEnv...), os.Rename(doneFile+".tmp", doneFile) } func (m *Manager) GetContext(ctx context.Context, tool types.Tool, cmd, env []string) (string, []string, error) {