func main() { c, err := configure() if err != nil { log.Fatal("Reading config failed: ", err.Error()) } conf := &asgd.Config{ Name: fmt.Sprintf("%s-%s", "tunnelproxymanager", c.EBEnvName), AccessKeyID: c.AccessKeyID, SecretAccessKey: c.SecretAccessKey, Region: c.Region, AutoScalingName: c.AutoScalingName, Debug: c.Debug, } session, err := asgd.Configure(conf) if err != nil { log.Fatal("Reading config failed: ", err.Error()) } log := logging.NewCustom(Name, conf.Debug) // remove formatting from call stack and output correct line log.SetCallDepth(1) route53Session := awssession.New(&aws.Config{ Credentials: credentials.NewStaticCredentials( c.Route53AccessKeyID, c.Route53SecretAccessKey, "", ), Region: aws.String(conf.Region), MaxRetries: aws.Int(5), }) // create record manager recordManager := tunnelproxymanager.NewRecordManager(route53Session, log, conf.Region, c.HostedZone) if err := recordManager.Init(); err != nil { log.Fatal(err.Error()) } // create lifecycle l := asgd.NewLifeCycle(session, log, conf.AutoScalingName) // configure lifecycle with system name if err := l.Configure(conf.Name); err != nil { log.Fatal(err.Error()) } done := registerSignalHandler(l, log) // listen to lifecycle events if err := l.Listen(recordManager.ProcessFunc); err != nil { log.Fatal(err.Error()) } <-done }
func main() { c := &Conf{} mc := multiconfig.New() mc.Loader = multiconfig.MultiLoader( &multiconfig.TagLoader{}, &multiconfig.EnvironmentLoader{}, &multiconfig.EnvironmentLoader{Prefix: "ASGD"}, &multiconfig.FlagLoader{}, ) mc.MustLoad(c) conf := &asgd.Config{ Name: c.Name, AccessKeyID: c.AccessKeyID, SecretAccessKey: c.SecretAccessKey, Region: c.Region, AutoScalingName: c.AutoScalingName, Debug: c.Debug, } session, err := asgd.Configure(conf) if err != nil { log.Fatal("Reading config failed: ", err.Error()) } log := logging.NewCustom("asgd", conf.Debug) // remove formatting from call stack and output correct line log.SetCallDepth(1) // create lifecycle l := asgd.NewLifeCycle(session, log, conf.AutoScalingName) // configure lifecycle with system name if err := l.Configure(conf.Name); err != nil { log.Fatal(err.Error()) } done := registerSignalHandler(l, log) // listen to lifecycle events if err := l.Listen(process(c.Execute)); err != nil { log.Fatal(err.Error()) } <-done }