engine.#Copy matches docker.#Copy
Signed-off-by: Richard Jones <richard@dagger.io>
This commit is contained in:
parent
39e206e7d2
commit
7eb10f96fb
@ -69,9 +69,15 @@ package engine
|
|||||||
// Copy files from one FS tree to another
|
// Copy files from one FS tree to another
|
||||||
#Copy: {
|
#Copy: {
|
||||||
$dagger: task: _name: "Copy"
|
$dagger: task: _name: "Copy"
|
||||||
|
// Input of the operation
|
||||||
input: #FS
|
input: #FS
|
||||||
#CopyInfo
|
// Contents to copy
|
||||||
|
contents: #FS
|
||||||
|
// Source path (optional)
|
||||||
|
source: string | *"/"
|
||||||
|
// Destination path (optional)
|
||||||
|
dest: string | *"/"
|
||||||
|
// Output of the operation
|
||||||
output: #FS
|
output: #FS
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -26,10 +26,8 @@ import (
|
|||||||
// Copy action
|
// Copy action
|
||||||
_copy: engine.#Copy & {
|
_copy: engine.#Copy & {
|
||||||
"input": engine.#Scratch
|
"input": engine.#Scratch
|
||||||
source: {
|
contents: input
|
||||||
root: input
|
source: path
|
||||||
"path": path
|
|
||||||
}
|
|
||||||
dest: "/"
|
dest: "/"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -29,17 +29,17 @@ func (t *copyTask) Run(ctx context.Context, pctx *plancontext.Context, s solver.
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
sourceRoot, err := pctx.FS.FromValue(v.Lookup("source.root"))
|
contents, err := pctx.FS.FromValue(v.Lookup("contents"))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
sourceState, err := sourceRoot.State()
|
contentsState, err := contents.State()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
sourcePath, err := v.Lookup("source.path").String()
|
sourcePath, err := v.Lookup("source").String()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@ -51,7 +51,7 @@ func (t *copyTask) Run(ctx context.Context, pctx *plancontext.Context, s solver.
|
|||||||
|
|
||||||
outputState := inputState.File(
|
outputState := inputState.File(
|
||||||
llb.Copy(
|
llb.Copy(
|
||||||
sourceState,
|
contentsState,
|
||||||
sourcePath,
|
sourcePath,
|
||||||
destPath,
|
destPath,
|
||||||
// FIXME: allow more configurable llb options
|
// FIXME: allow more configurable llb options
|
||||||
|
@ -30,12 +30,11 @@ engine.#Plan & {
|
|||||||
|
|
||||||
copy: engine.#Copy & {
|
copy: engine.#Copy & {
|
||||||
input: image.output
|
input: image.output
|
||||||
source: {
|
contents: exec.output
|
||||||
root: exec.output
|
source: "/output.txt"
|
||||||
path: "/output.txt"
|
|
||||||
}
|
|
||||||
dest: "/output.txt"
|
dest: "/output.txt"
|
||||||
}
|
}
|
||||||
|
|
||||||
verify_copy: engine.#ReadFile & {
|
verify_copy: engine.#ReadFile & {
|
||||||
input: copy.output
|
input: copy.output
|
||||||
path: "/output.txt"
|
path: "/output.txt"
|
||||||
|
@ -30,10 +30,8 @@ engine.#Plan & {
|
|||||||
|
|
||||||
copy: engine.#Copy & {
|
copy: engine.#Copy & {
|
||||||
input: image.output
|
input: image.output
|
||||||
source: {
|
contents: exec.output
|
||||||
root: exec.output
|
source: "/output.txt"
|
||||||
path: "/output.txt"
|
|
||||||
}
|
|
||||||
dest: "/output.txt"
|
dest: "/output.txt"
|
||||||
}
|
}
|
||||||
verify_copy: engine.#ReadFile & {
|
verify_copy: engine.#ReadFile & {
|
||||||
|
@ -24,10 +24,8 @@ engine.#Plan & {
|
|||||||
|
|
||||||
copy: engine.#Copy & {
|
copy: engine.#Copy & {
|
||||||
input: busybox1_34_1.output
|
input: busybox1_34_1.output
|
||||||
source: {
|
contents: alpine3_15_0.output
|
||||||
root: alpine3_15_0.output
|
source: "/etc/alpine-release"
|
||||||
path: "/etc/alpine-release"
|
|
||||||
}
|
|
||||||
dest: "/alpine3_15_0_release"
|
dest: "/alpine3_15_0_release"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user