func terminateInteractive()

in cmd/terminate.go [69:103]


func terminateInteractive(h *ec2helper.EC2Helper) {
	// If region is not specified in flags, ask region
	var region *string
	var err error
	if regionFlag == "" {
		region, err = question.AskRegion(h)
		if cli.ShowError(err, "Asking region failed") {
			return
		}
	} else {
		region = &regionFlag
	}

	h.ChangeRegion(*region)

	// Keep asking for instance ids for termination
	instanceIds := []string{}
	for {
		// Ask instance ID
		instanceIdAnswer, err := question.AskInstanceIds(h, instanceIds)
		if cli.ShowError(err, "Terminate Error") {
			return
		}

		if instanceIdAnswer == nil || *instanceIdAnswer == cli.ResponseNo {
			break
		} else {
			instanceIds = append(instanceIds, *instanceIdAnswer)
		}
	}

	if question.AskTerminationConfirmation(instanceIds) == cli.ResponseYes {
		cli.ShowError(h.TerminateInstances(instanceIds), "Terminating instances failed")
	}
}