cli: allow existing config for IAM creation without --generate-config

This commit is contained in:
Nils Hanke 2023-02-27 14:48:13 +01:00 committed by Nils Hanke
parent f9bb7c5f34
commit c9ddc93d55

View File

@ -198,7 +198,7 @@ func (c *iamCreator) create(ctx context.Context) error {
} }
c.log.Debugf("Using flags: %+v", flags) c.log.Debugf("Using flags: %+v", flags)
if err := c.checkWorkingDir(); err != nil { if err := c.checkWorkingDir(flags); err != nil {
return err return err
} }
@ -281,12 +281,14 @@ func (c *iamCreator) parseFlagsAndSetupConfig() (iamFlags, error) {
} }
// checkWorkingDir checks if the current working directory already contains a Terraform dir or a Constellation config file. // checkWorkingDir checks if the current working directory already contains a Terraform dir or a Constellation config file.
func (c *iamCreator) checkWorkingDir() error { func (c *iamCreator) checkWorkingDir(flags iamFlags) error {
if _, err := c.fileHandler.Stat(constants.TerraformIAMWorkingDir); err == nil { if _, err := c.fileHandler.Stat(constants.TerraformIAMWorkingDir); err == nil {
return fmt.Errorf("the current working directory already contains the %s directory. Please run the command in a different directory", constants.TerraformIAMWorkingDir) return fmt.Errorf("the current working directory already contains the Terraform workspace directory %q. Please run the command in a different directory or destroy the existing workspace", constants.TerraformIAMWorkingDir)
} }
if _, err := c.fileHandler.Stat(constants.ConfigFilename); err == nil { if flags.generateConfig {
return fmt.Errorf("the current working directory already contains the %s file. Please run the command in a different directory", constants.ConfigFilename) if _, err := c.fileHandler.Stat(flags.configPath); err == nil {
return fmt.Errorf("the flag --generate-config is set, but %q already exists. Please either run the command in a different directory, define another config path, or delete or move the existing configuration", flags.configPath)
}
} }
return nil return nil
} }