diff options
Diffstat (limited to 'build')
-rw-r--r-- | build/instructions.go | 9 | ||||
-rw-r--r-- | build/instructions_test.go | 6 |
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", |