in tui/post_processors.go [66:115]
func createProject(projectID string, q *Queue) tea.Cmd {
return func() tea.Msg {
currentProjectID := q.Get("currentProject").(string)
if currentProjectID == "" {
tmp, err := q.client.ProjectList()
if err != nil || len(tmp) == 0 || tmp[0].ID == "" {
return errMsg{err: fmt.Errorf("createProject: could not determine an alternate project for parent detection: %w ", err)}
}
currentProjectID = tmp[0].ID
}
parent, err := q.client.ProjectParentGet(currentProjectID)
if err != nil {
return errMsg{err: fmt.Errorf("createProject: could not determine proper parent for project: %w ", err)}
}
if err := q.client.ProjectCreate(projectID, parent.Id, parent.Type); err != nil {
return errMsg{err: fmt.Errorf("createProject: could not create project: %w", err)}
}
if err := q.client.ServiceEnable(projectID, gcloud.ServiceUsage); err != nil {
return errMsg{err: fmt.Errorf("createProject: could not enable service: %w", err)}
}
if errMsg := handleProjectNumber(projectID, q); errMsg != nil {
return errMsg
}
if err := q.client.ProjectIDSet(projectID); err != nil {
return errMsg{err: err}
}
qmod := q.Model("region")
if qmod != nil {
r := qmod.(*picker)
r.querySlowText = "Getting regions can take a little extra time if this is a new project"
}
qmod = q.Model("zone")
if qmod != nil {
z := qmod.(*picker)
z.querySlowText = "Getting zones can take a little extra time if this is a new project"
}
q.Save("currentProject", projectID)
return successMsg{}
}
}