// PreRun sets up global tasks used for most commands, some use PreRunNoop // to remove this default behaviour. func preRun(c *cobra.Command, args []string) error { if l, err := log.ParseLevel(logLevel); err == nil { log.SetLevel(l) } config := aws.NewConfig() if profile != "" { config = config.WithCredentials(credentials.NewSharedCredentials("", profile)) } Session = session.New(config) Project = &project.Project{ Log: log.Log, Path: ".", } if dryRun { log.SetLevel(log.WarnLevel) Project.Service = dryrun.New(Session) Project.Concurrency = 1 } else { Project.Service = lambda.New(Session) } if chdir != "" { if err := os.Chdir(chdir); err != nil { return err } } return Project.Open() }
func (pv *PersistentValues) preRun(c *cobra.Command, args []string) { if l, err := log.ParseLevel(pv.LogLevel); err == nil { log.SetLevel(l) } pv.session = session.New(aws.NewConfig()) pv.project = &project.Project{ Log: log.Log, Path: ".", } if pv.DryRun { log.SetLevel(log.WarnLevel) pv.project.Service = dryrun.New(pv.session) pv.project.Concurrency = 1 } else { pv.project.Service = lambda.New(pv.session) } if pv.Chdir != "" { if err := os.Chdir(pv.Chdir); err != nil { log.Fatalf("error: %s", err) } } if err := pv.project.Open(); err != nil { log.Fatalf("error opening project: %s", err) } }
// Prepare handles the global CLI flags and shared functionality without // the assumption that a Project has already been initialized. // // Precedence is currently: // // - flags such as --profile // - env vars such as AWS_PROFILE // - files such as ~/.aws/config // func Prepare(c *cobra.Command, args []string) error { if l, err := log.ParseLevel(logLevel); err == nil { log.SetLevel(l) } // config defaults Config = aws.NewConfig() // profile from flag, config, env, "default" if profile == "" { profile, _ = utils.ProfileFromConfig(environment) if profile == "" { profile = os.Getenv("AWS_PROFILE") if profile == "" { profile = "default" } } } // the default SharedCredentialsProvider checks the env os.Setenv("AWS_PROFILE", profile) // region from flag, env, file if region == "" { region = os.Getenv("AWS_REGION") if region == "" { region, _ = utils.GetRegion(profile) } } if region != "" { Config = Config.WithRegion(region) } Session = session.New(Config) Project = &project.Project{ Environment: environment, InfraEnvironment: environment, Log: log.Log, Path: ".", } if dryRun { log.SetLevel(log.WarnLevel) Project.Service = dryrun.New(Session) Project.Concurrency = 1 } else { Project.Service = lambda.New(Session) } if chdir != "" { if err := os.Chdir(chdir); err != nil { return err } } return nil }
func main() { args, err := docopt.Parse(usage, nil, true, version, false) if err != nil { log.Fatalf("error: %s", err) } log.SetHandler(cli.Default) if l, err := log.ParseLevel(args["--log-level"].(string)); err == nil { log.SetLevel(l) } if args["help"].(bool) { showHelp(args["<topic>"]) return } session := session.New(aws.NewConfig()) project := &project.Project{ Log: log.Log, Path: ".", } if args["--dry-run"].(bool) { log.SetLevel(log.WarnLevel) project.Service = dryrun.New(session) project.Concurrency = 1 } else { project.Service = lambda.New(session) } if dir, ok := args["--chdir"].(string); ok { if err := os.Chdir(dir); err != nil { log.Fatalf("error: %s", err) } } if err := project.Open(); err != nil { log.Fatalf("error opening project: %s", err) } switch { case args["list"].(bool): list(project) case args["deploy"].(bool): deploy(project, args["<name>"].([]string), args["--env"].([]string)) case args["delete"].(bool): delete(project, args["<name>"].([]string), args["--yes"].(bool)) case args["invoke"].(bool): invoke(project, args["<name>"].([]string), args["--verbose"].(bool), args["--async"].(bool)) case args["rollback"].(bool): rollback(project, args["<name>"].([]string), args["<version>"]) case args["build"].(bool): build(project, args["<name>"].([]string)) case args["logs"].(bool): tail(project, args["<name>"].([]string), args["--filter"].(string)) } }
// PreRun sets up global tasks used for most commands, some use PreRunNoop // to remove this default behaviour. func preRun(c *cobra.Command, args []string) error { if l, err := log.ParseLevel(logLevel); err == nil { log.SetLevel(l) } // credential defaults config := aws.NewConfig() // explicit profile if profile != "" { config = config.WithCredentials(credentials.NewSharedCredentials("", profile)) } // support region from ~/.aws/config for AWS_PROFILE if profile == "" { profile = os.Getenv("AWS_PROFILE") } // region from ~/.aws/config if region, _ := utils.GetRegion(profile); region != "" { config = config.WithRegion(region) } Session = session.New(config) Project = &project.Project{ Log: log.Log, Path: ".", } if dryRun { log.SetLevel(log.WarnLevel) Project.Service = dryrun.New(Session) Project.Concurrency = 1 } else { Project.Service = lambda.New(Session) } if chdir != "" { if err := os.Chdir(chdir); err != nil { return err } } return Project.Open() }