282759c0e5
In preparation for Europa, we will vendor multiple CUE modules: - `pkg/alpha.dagger.io`: legacy non-europa packages - `pkg/dagger.io`: core Europa packages - `pkg/universe.dagger.io`: Europa universe Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
44 lines
699 B
CUE
44 lines
699 B
CUE
// OS operations
|
|
package os
|
|
|
|
import (
|
|
"alpha.dagger.io/dagger"
|
|
"alpha.dagger.io/dagger/op"
|
|
)
|
|
|
|
// Built-in file implementation, using buildkit
|
|
// A single file
|
|
#File: {
|
|
from: dagger.#Artifact | *[op.#Mkdir & {dir: "/", path: "/"}]
|
|
path: string
|
|
|
|
// Optionally write data to the file
|
|
write: *null | {
|
|
data: string
|
|
// FIXME: append
|
|
// FIXME: create + mode
|
|
}
|
|
|
|
// The contents of the file
|
|
// If a write operation is specified, it is applied first.
|
|
contents: {
|
|
string
|
|
|
|
#up: [
|
|
op.#Load & {
|
|
"from": from
|
|
},
|
|
if write != null {
|
|
op.#WriteFile & {
|
|
dest: path
|
|
content: write.data
|
|
}
|
|
},
|
|
op.#Export & {
|
|
source: path
|
|
format: "string"
|
|
},
|
|
]
|
|
}
|
|
}
|