Skip to content

Commit 2cfad3d

Browse files
Merge pull request #329 from ibuildthecloud/main
bug: sys.getenv should be able to get GPTSCRIPT_WORKSPACE_DIR
2 parents 6eb7102 + 9da3d15 commit 2cfad3d

File tree

2 files changed

+34
-1
lines changed

2 files changed

+34
-1
lines changed

pkg/builtin/builtin.go

+11-1
Original file line numberDiff line numberDiff line change
@@ -319,7 +319,10 @@ func SysExec(ctx context.Context, env []string, input string) (string, error) {
319319
if err != nil {
320320
_, _ = os.Stdout.Write(out)
321321
}
322-
return string(out), err
322+
if err != nil {
323+
return string(out), fmt.Errorf("OUTPUT: %s, ERROR: %w", out, err)
324+
}
325+
return string(out), nil
323326
}
324327

325328
func getWorkspaceDir(envs []string) (string, error) {
@@ -617,6 +620,13 @@ func SysGetenv(ctx context.Context, env []string, input string) (string, error)
617620
return "", err
618621
}
619622
log.Debugf("looking up env var %s", params.Name)
623+
for _, env := range env {
624+
k, v, ok := strings.Cut(env, "=")
625+
if ok && k == params.Name {
626+
log.Debugf("found env var %s in local environment", params.Name)
627+
return v, nil
628+
}
629+
}
620630
return os.Getenv(params.Name), nil
621631
}
622632

pkg/builtin/builtin_test.go

+23
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package builtin
2+
3+
import (
4+
"context"
5+
"testing"
6+
7+
"github.com/hexops/autogold/v2"
8+
"github.com/stretchr/testify/require"
9+
)
10+
11+
func TestSysGetenv(t *testing.T) {
12+
v, err := SysGetenv(context.Background(), []string{
13+
"MAGIC=VALUE",
14+
}, `{"name":"MAGIC"}`)
15+
require.NoError(t, err)
16+
autogold.Expect("VALUE").Equal(t, v)
17+
18+
v, err = SysGetenv(context.Background(), []string{
19+
"MAGIC=VALUE",
20+
}, `{"name":"MAGIC2"}`)
21+
require.NoError(t, err)
22+
autogold.Expect("").Equal(t, v)
23+
}

0 commit comments

Comments
 (0)