fixes issue where dagger hands when input directory does not exist

Signed-off-by: Richard Jones <richard@dagger.io>
This commit is contained in:
Richard Jones 2021-12-17 13:37:20 -07:00
parent 3861ab3464
commit aa268561bc
No known key found for this signature in database
GPG Key ID: CFB3A382EB166F4C
3 changed files with 33 additions and 0 deletions

View File

@ -2,7 +2,10 @@ package plan
import (
"context"
"errors"
"fmt"
"os"
"path/filepath"
"strings"
"time"
@ -69,6 +72,13 @@ func (p *Plan) registerLocalDirs() error {
if err != nil {
return err
}
abs, err := filepath.Abs(dir)
if err != nil {
return err
}
if _, err := os.Stat(abs); errors.Is(err, os.ErrNotExist) {
return fmt.Errorf("path %q does not exist", abs)
}
p.context.LocalDirs.Add(dir)
}

View File

@ -44,6 +44,13 @@ setup() {
"$DAGGER" --europa up ./plan/inputs/directories/exists.cue
}
@test "plan/inputs/directories not exists" {
cd "$TESTDIR"
run "$DAGGER" --europa up ./plan/inputs/directories/not_exists.cue
assert_failure
assert_output --partial 'tests/fasdfsdfs" does not exist'
}
@test "plan/inputs/directories conflicting values" {
cd "$TESTDIR"
run "$DAGGER" --europa up ./plan/inputs/directories/conflicting_values.cue

View File

@ -0,0 +1,16 @@
package main
import (
"alpha.dagger.io/europa/dagger/engine"
)
engine.#Plan & {
// should fail because path does not exist locally
inputs: directories: test: path: "./fasdfsdfs"
actions: verify: engine.#ReadFile & {
input: inputs.directories.test.contents
path: "test.txt"
} & {
contents: "local directory"
}
}