This repository has been archived on 2024-04-08. You can view files and clone it, but cannot push or open issues or pull requests.
dagger/pkg/alpha.dagger.io/.dagger/env/sanity-check/plan/main.cue
Andrea Luzzardi 282759c0e5 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>
2022-01-11 13:16:37 -08:00

70 lines
1.3 KiB
CUE

package main
import (
"alpha.dagger.io/dagger"
"alpha.dagger.io/os"
"alpha.dagger.io/alpine"
)
// Assert that there are no errors
err: ""
// Directory containing universe packages (./universe/ in dagger repo)
universe: dagger.#Input & dagger.#Artifact
ctr: #CueCLI & {
ctx: universe
command: """
(
find . -name '*.cue' -print0 | xargs -0iX dirname X | sort -u | {
while read -r dir; do
[ "$(basename $dir)" = "cue.mod" ] && continue
echo "--- $dir"
cue eval "$dir" >/dev/null
done
} > /out 2>/err
) || true
"""
}
result: (os.#File & {
from: ctr.ctr
path: "/out"
}).contents @dagger(output)
err: (os.#File & {
from: ctr.ctr
path: "/err"
}).contents @dagger(output)
#CueCLI: {
command: string
ctx: dagger.#Artifact
vendor: [name=string]: dagger.#Artifact
ctr: os.#Container & {
image: alpine.#Image & {
package: {
curl: true
tar: true
}
}
setup: [
"""
set -e
cd $(mktemp -d)
curl -L https://github.com/cue-lang/cue/releases/download/v0.4.0/cue_v0.4.0_linux_amd64.tar.gz -o cue.tgz
tar zxvf cue.tgz
cp cue /usr/local/bin/cue
rm -fr ./*
""",
]
mount: "/ctx": from: ctx
for name, dir in vendor {
mount: "/ctx/cue.mod/pkg/\(name)": from: dir
}
dir: "/ctx"
"command": command
}
}