From ced9ab07e5341227f0e6ca6de81c59b36bacc8b8 Mon Sep 17 00:00:00 2001 From: Tom Chauveau Date: Thu, 29 Apr 2021 17:06:59 +0200 Subject: [PATCH] dagger: unset input Signed-off-by: Tom Chauveau --- cmd/dagger/cmd/input/root.go | 18 ++++++++++++++++++ cmd/dagger/cmd/input/unset.go | 26 ++++++++++++++++++++++++++ 2 files changed, 44 insertions(+) create mode 100644 cmd/dagger/cmd/input/unset.go diff --git a/cmd/dagger/cmd/input/root.go b/cmd/dagger/cmd/input/root.go index 06b5e931..64d423e2 100644 --- a/cmd/dagger/cmd/input/root.go +++ b/cmd/dagger/cmd/input/root.go @@ -28,6 +28,7 @@ func init() { jsonCmd, yamlCmd, listCmd, + unsetCmd, ) } @@ -79,3 +80,20 @@ func readInput(ctx context.Context, source string) string { return string(data) } + +func removeEnvironmentInput(ctx context.Context, key string) { + lg := log.Ctx(ctx) + + store, err := dagger.DefaultStore() + if err != nil { + lg.Fatal().Err(err).Msg("failed to load store") + } + + st := common.GetCurrentEnvironmentState(ctx, store) + st.RemoveInputs(key) + + if err := store.UpdateEnvironment(ctx, st, nil); err != nil { + lg.Fatal().Err(err).Str("environmentId", st.ID).Str("environmentName", st.Name).Msg("cannot update environment") + } + lg.Info().Str("environmentId", st.ID).Str("environmentName", st.Name).Msg("updated environment") +} diff --git a/cmd/dagger/cmd/input/unset.go b/cmd/dagger/cmd/input/unset.go new file mode 100644 index 00000000..3de19ea9 --- /dev/null +++ b/cmd/dagger/cmd/input/unset.go @@ -0,0 +1,26 @@ +package input + +import ( + "dagger.io/go/cmd/dagger/logger" + "github.com/spf13/cobra" + "github.com/spf13/viper" +) + +var unsetCmd = &cobra.Command{ + Use: "unset [TARGET]", + Short: "Remove input of an environment", + Args: cobra.ExactArgs(1), + PreRun: func(cmd *cobra.Command, args []string) { + // Fix Viper bug for duplicate flags: + // https://github.com/spf13/viper/issues/233 + if err := viper.BindPFlags(cmd.Flags()); err != nil { + panic(err) + } + }, + Run: func(cmd *cobra.Command, args []string) { + lg := logger.New() + ctx := lg.WithContext(cmd.Context()) + + removeEnvironmentInput(ctx, args[0]) + }, +}