Skip to content

Commit 080d3f5

Browse files
author
Michel Casabianca
committed
Added setenv task
1 parent 7f6bb07 commit 080d3f5

File tree

2 files changed

+59
-0
lines changed

2 files changed

+59
-0
lines changed

neon/task/setenv.go

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
package task
2+
3+
import (
4+
"os"
5+
"reflect"
6+
7+
"github.com/c4s4/neon/neon/build"
8+
)
9+
10+
func init() {
11+
build.AddTask(build.TaskDesc{
12+
Name: "setenv",
13+
Func: setenv,
14+
Args: reflect.TypeOf(setenvArgs{}),
15+
Help: `Set environment variable with given value.
16+
17+
Arguments:
18+
19+
- setenv: environment variable name (string).
20+
- value: value of this environment variable (string).
21+
22+
Examples:
23+
24+
# set environment variable VERSION to value "1.2.3"
25+
- setenv: 'VERSION'
26+
value: '1.2.3'`,
27+
})
28+
}
29+
30+
type setenvArgs struct {
31+
Setenv string
32+
Value string
33+
}
34+
35+
func setenv(context *build.Context, args interface{}) error {
36+
params := args.(setenvArgs)
37+
os.Setenv(params.Setenv, params.Value)
38+
return nil
39+
}

test/task/setenv.yml

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
doc: Built file to test tasks
2+
default: task_setenv
3+
4+
properties:
5+
BUILD_DIR: '../../build'
6+
7+
targets:
8+
9+
task_setenv:
10+
doc: Test task setenv
11+
steps:
12+
- setenv: 'TEST'
13+
value: 'FOO'
14+
- |
15+
os = import("os")
16+
if os.Getenv("TEST") != "FOO" {
17+
throw("Setenv test failure")
18+
} else {
19+
println("Setenv test success")
20+
}

0 commit comments

Comments
 (0)