summaryrefslogtreecommitdiff
path: root/build
diff options
context:
space:
mode:
Diffstat (limited to 'build')
-rw-r--r--build/instructions.go9
-rw-r--r--build/instructions_test.go6
2 files changed, 15 insertions, 0 deletions
diff --git a/build/instructions.go b/build/instructions.go
index 5c12796..1b954a2 100644
--- a/build/instructions.go
+++ b/build/instructions.go
@@ -50,6 +50,15 @@ func (copy Copy) Compile() []string {
return append(quoteAll(copy.Sources), quote(copy.Destination))
}
+type CopyFrom struct {
+ From string
+ Copy
+}
+
+func (cf CopyFrom) Compile() []string {
+ return append([]string{cf.From}, cf.Copy.Compile()...)
+}
+
type Env struct {
Definitions map[string]string
}
diff --git a/build/instructions_test.go b/build/instructions_test.go
index dbab4b5..8f9470c 100644
--- a/build/instructions_test.go
+++ b/build/instructions_test.go
@@ -36,6 +36,12 @@ func TestCopy(t *testing.T) {
assert.Equal(t, []string{`"source1"`, `"source2"`, `"dest"`}, i.Compile())
}
+func TestCopyFrom(t *testing.T) {
+ i := build.CopyFrom{"foo", build.Copy{[]string{"source1", "source2"}, "dest"}}
+
+ assert.Equal(t, []string{"foo", `"source1"`, `"source2"`, `"dest"`}, i.Compile())
+}
+
func TestEnv(t *testing.T) {
i := build.Env{map[string]string{
"fooname": "foovalue",