cue modules: move stdlib to pkg/alpha.dagger.io
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>
This commit is contained in:
43
pkg/alpha.dagger.io/os/file.cue
Normal file
43
pkg/alpha.dagger.io/os/file.cue
Normal file
@@ -0,0 +1,43 @@
|
||||
// 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"
|
||||
},
|
||||
]
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user