Implement (getenv)

This commit is contained in:
HAYAMA_Kaoru
2024-11-30 11:22:19 +09:00
parent eceaa0bfbc
commit cf747dcac7
2 changed files with 14 additions and 0 deletions
+13
View File
@@ -3,6 +3,7 @@ package main
import (
"context"
"io"
"os"
"time"
"github.com/hymkor/gmnlisp"
@@ -138,3 +139,15 @@ func (g *Global) expectX(ctx context.Context, w *gmnlisp.World, node gmnlisp.Nod
return gmnlisp.Progn(ctx, w, timeoutAct)
}
}
func (g *Global) getenv(ctx context.Context, w *gmnlisp.World, arg gmnlisp.Node) (gmnlisp.Node, error) {
name, err := gmnlisp.ExpectClass[gmnlisp.String](ctx, w, arg)
if err != nil {
return nil, err
}
value, ok := os.LookupEnv(string(name))
if !ok {
return gmnlisp.Null, nil
}
return gmnlisp.String(value), nil
}