diff --git a/api/src/job.js b/api/src/job.js index d46120b..8c3fa79 100644 --- a/api/src/job.js +++ b/api/src/job.js @@ -156,7 +156,11 @@ class Job { '-s', '-c', '/box/submission', - '-e', + '-E', + 'HOME=/tmp', + ...this.runtime.env_vars.flat_map(v => ['-E', v]), + '-E', + `PISTON_LANGUAGE=${this.runtime.language}`, `--dir=${this.runtime.pkgdir}`, `--dir=/etc:noexec`, `--processes=${this.runtime.max_process_count}`, @@ -175,10 +179,6 @@ class Job { ...args, ], { - env: { - ...this.runtime.env_vars, - PISTON_LANGUAGE: this.runtime.language, - }, stdio: 'pipe', } ); diff --git a/api/src/runtime.js b/api/src/runtime.js index 9a2adf4..90a2225 100644 --- a/api/src/runtime.js +++ b/api/src/runtime.js @@ -178,15 +178,7 @@ class Runtime { const env_file = path.join(this.pkgdir, '.env'); const env_content = fss.read_file_sync(env_file).toString(); - this._env_vars = {}; - - env_content - .trim() - .split('\n') - .map(line => line.split('=', 2)) - .forEach(([key, val]) => { - this._env_vars[key.trim()] = val.trim(); - }); + this._env_vars = env_content.trim().split('\n'); } return this._env_vars; diff --git a/packages/go/1.22.2/build.sh b/packages/go/1.22.2/build.sh new file mode 100755 index 0000000..6111f06 --- /dev/null +++ b/packages/go/1.22.2/build.sh @@ -0,0 +1,4 @@ +#!/usr/bin/env bash +curl -LO https://go.dev/dl/go1.22.2.linux-amd64.tar.gz +tar -xzf go1.22.2.linux-amd64.tar.gz +rm go1.22.2.linux-amd64.tar.gz diff --git a/packages/go/1.22.2/environment b/packages/go/1.22.2/environment new file mode 100644 index 0000000..88299c1 --- /dev/null +++ b/packages/go/1.22.2/environment @@ -0,0 +1,2 @@ +export PATH=$PWD/go/bin:$PATH +export GOPATH=$PWD/gopath diff --git a/packages/go/1.22.2/metadata.json b/packages/go/1.22.2/metadata.json new file mode 100644 index 0000000..1284d1c --- /dev/null +++ b/packages/go/1.22.2/metadata.json @@ -0,0 +1,5 @@ +{ + "language": "go", + "version": "1.22.2", + "aliases": ["go", "golang"] +} diff --git a/packages/go/1.22.2/run b/packages/go/1.22.2/run new file mode 100644 index 0000000..0e2b1d9 --- /dev/null +++ b/packages/go/1.22.2/run @@ -0,0 +1,6 @@ +#!/usr/bin/env bash + +mv $1 $1.go +filename=*.go +shift +GOCACHE=$PWD go run $filename "$@" diff --git a/packages/go/1.22.2/test.go b/packages/go/1.22.2/test.go new file mode 100644 index 0000000..c06f485 --- /dev/null +++ b/packages/go/1.22.2/test.go @@ -0,0 +1,7 @@ +package main + +import "fmt" + +func main() { + fmt.Println("OK") +}