func (cc *Controller) Init(ctx climax.Context) int { if _, err := os.Stat(config.Path()); os.IsNotExist(err) { err = os.MkdirAll(path.Dir(config.Path()), filePerms) printer.Say("creating %s", path.Dir(config.Path())) if err != nil { printer.SayErr("could not create config directory: %v", err) return 1 } err = ioutil.WriteFile(config.Path(), config.ExampleConfig, filePerms) printer.Say("%s not found. creating example config", config.Path()) if err != nil { printer.SayErr("could not write config.hcl %v", err) return 1 } } if !cc.Config.GitEnabled() { printer.Say("no repository configured. skipping") return 0 } create := ctx.Is("create") err := cc.Client.InitRepo(create) if err != nil { printer.SayErr("%v", err) return 1 } if create { printer.Say("initialized new repo in %s and pushed to %s", cc.Config.Git.RepoPath, cc.Config.Git.RepoURL) } else { printer.Say("cloned %s into %s", cc.Config.Git.RepoURL, cc.Config.Git.RepoPath) } return 0 }