func()

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
}