From a799dd05d7648077923811e787d38095abe42ac7 Mon Sep 17 00:00:00 2001 From: Sam Alba Date: Fri, 2 Apr 2021 17:14:01 -0700 Subject: [PATCH] cli: moved abs path resolve to input.go Signed-off-by: Sam Alba --- cmd/dagger/cmd/input/dir.go | 9 +-------- cmd/dagger/cmd/new.go | 6 +----- dagger/input.go | 8 ++++++++ 3 files changed, 10 insertions(+), 13 deletions(-) diff --git a/cmd/dagger/cmd/input/dir.go b/cmd/dagger/cmd/input/dir.go index 6e2c250b..0b0177cf 100644 --- a/cmd/dagger/cmd/input/dir.go +++ b/cmd/dagger/cmd/input/dir.go @@ -1,8 +1,6 @@ package input import ( - "path/filepath" - "dagger.io/go/cmd/dagger/logger" "dagger.io/go/dagger" "github.com/spf13/cobra" @@ -24,12 +22,7 @@ var dirCmd = &cobra.Command{ lg := logger.New() ctx := lg.WithContext(cmd.Context()) - path, err := filepath.Abs(args[1]) - if err != nil { - lg.Error().Err(err).Str("path", args[1]).Msg("cannot get absolute path") - } - - updateDeploymentInput(ctx, args[0], dagger.DirInput(path, []string{})) + updateDeploymentInput(ctx, args[0], dagger.DirInput(args[1], []string{})) }, } diff --git a/cmd/dagger/cmd/new.go b/cmd/dagger/cmd/new.go index c20e9811..9c3e3966 100644 --- a/cmd/dagger/cmd/new.go +++ b/cmd/dagger/cmd/new.go @@ -103,11 +103,7 @@ func getPlanSource(ctx context.Context) dagger.Input { if planDir != "" { checkFirstSet() - path, err := filepath.Abs(planDir) - if err != nil { - lg.Error().Err(err).Str("path", planDir).Msg("cannot get absolute path") - } - src = dagger.DirInput(path, []string{"*.cue", "cue.mod"}) + src = dagger.DirInput(planDir, []string{"*.cue", "cue.mod"}) } if planGit != "" { diff --git a/dagger/input.go b/dagger/input.go index a00db28f..9a544bef 100644 --- a/dagger/input.go +++ b/dagger/input.go @@ -3,6 +3,7 @@ package dagger import ( "encoding/json" "fmt" + "path/filepath" "dagger.io/go/dagger/compiler" ) @@ -82,6 +83,13 @@ type dirInput struct { func (dir dirInput) Compile() (*compiler.Value, error) { // FIXME: serialize an intermediate struct, instead of generating cue source + // resolve absolute path + path, err := filepath.Abs(dir.Path) + if err != nil { + return nil, err + } + dir.Path = path + // json.Marshal([]string{}) returns []byte("null"), which wreaks havoc // in Cue because `null` is not a `[...string]` includeLLB := []byte("[]")