in tui/queue.go [247:320]
func (q *Queue) ProcessConfig() error {
var project, name string
var err error
s := q.stack
sets := s.Config.GetAuthorSettings()
for _, v := range sets {
s.AddSettingComplete(v)
}
project = s.GetSetting("project_id")
region := s.GetSetting("region")
zone := s.GetSetting("zone")
name = s.Config.Name
if name == "" {
err = s.Config.ComputeName(s.Config.Getwd())
if err != nil {
return err
}
}
s.AddSetting("stack_name", s.Config.Name)
if s.Config.Project && len(project) == 0 {
p := config.Project{
Name: "project_id",
UserPrompt: "Choose a project to use for this application.",
}
s.Config.Projects.Items = append(s.Config.Projects.Items, p)
}
if len(s.Config.Projects.Items) > 0 {
currentProject := q.Get("currentProject").(string)
for _, v := range s.Config.Projects.Items {
s := newProjectSelector(v.Name, v.UserPrompt, currentProject, getProjects(q))
c := newProjectCreator(v.Name + projNewSuffix)
b := newBillingSelector(v.Name+billNewSuffix, getBillingAccounts(q), attachBilling)
q.add(&s, &c, &b)
}
}
if s.Config.BillingAccount {
b := newBillingSelector("billing_account", getBillingAccounts(q), nil)
b.list.Title = "Choose a billing account to use for with this application"
q.add(&b)
}
if s.Config.ConfigureGCEInstance {
newGCEInstance(q)
}
region = s.GetSetting("region")
if s.Config.Region && len(region) == 0 {
newRegion(q)
}
zone = s.GetSetting("zone")
if s.Config.Zone && len(zone) == 0 {
newZone(q)
}
if s.Config.Domain {
newDomain(q)
}
newCustomPages(q)
return err
}