pulumi/cmd/lumi/env_init.go
Matt Ellis a4c97d7225 Have saveEnv always override an existing environment
`saveEnv` had a flag which would prevent an environment from being
overwritten if it already existed, which was only used by `lumi env
init`. Refactor the code so the check is done inside `lumi` instead of
against this API. We don't need this functionality for the service and
so requiring support for this at the API boundary for environments
feels like a bad idea.
2017-08-29 18:05:42 -07:00

41 lines
1.2 KiB
Go

// Copyright 2016-2017, Pulumi Corporation. All rights reserved.
package main
import (
"errors"
"fmt"
"os"
"github.com/pulumi/pulumi-fabric/pkg/tokens"
"github.com/pulumi/pulumi-fabric/pkg/workspace"
"github.com/spf13/cobra"
"github.com/pulumi/pulumi-fabric/pkg/util/cmdutil"
)
func newEnvInitCmd() *cobra.Command {
return &cobra.Command{
Use: "init <env>",
Aliases: []string{"create"},
Short: "Create an empty environment with the given name, ready for deployments",
Long: "Create an empty environment with the given name, ready for deployments\n" +
"\n" +
"This command creates an empty environment with the given name. It has no resources,\n" +
"but afterwards it can become the target of a deployment using the `deploy` command.",
Run: cmdutil.RunFunc(func(cmd *cobra.Command, args []string) error {
// Read in the name of the environment to use.
if len(args) == 0 {
return errors.New("missing required environment name")
}
if _, staterr := os.Stat(workspace.EnvPath(tokens.QName(args[0]))); staterr == nil {
return fmt.Errorf("environment '%v' already exists", args[0])
}
return lumiEngine.InitEnv(args[0])
}),
}
}