-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathcreate.ts
More file actions
36 lines (32 loc) · 1.45 KB
/
create.ts
File metadata and controls
36 lines (32 loc) · 1.45 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import chalk from 'chalk'
import inquirer from 'inquirer'
import autocomplete from 'inquirer-autocomplete-prompt'
import { saveConfiguration } from '../../lib/configurations/index.js'
import { ConfigurationCreateAnswers } from '../../lib/types.js'
import { configurationNamePrompt } from './prompts/configuration-name.js'
import { confirmationPrompt } from './prompts/confirmation.js'
import { googleCloudProjectPrompt } from './prompts/google-cloud-project.js'
import { googleCloudSqlInstancePrompt } from './prompts/google-cloud-sql-instance.js'
import { kubernetesContextPrompt } from './prompts/kubernetes-context.js'
import { kubernetesNamespacePrompt } from './prompts/kubernetes-namespace.js'
import { kubernetesServiceAccountPrompt } from './prompts/kubernetes-service-account.js'
import { localPortPrompt } from './prompts/local-port.js'
export const createConfiguration = async () => {
inquirer.registerPrompt('autocomplete', autocomplete)
const answers = await inquirer.prompt<ConfigurationCreateAnswers>([
googleCloudProjectPrompt,
googleCloudSqlInstancePrompt,
kubernetesContextPrompt,
kubernetesNamespacePrompt,
kubernetesServiceAccountPrompt,
localPortPrompt,
configurationNamePrompt,
confirmationPrompt,
])
if (answers.confirmation) {
saveConfiguration(answers)
console.log(chalk.green(`Saved configuration '${chalk.bold(answers.configurationName)}'.`))
} else {
console.log(chalk.red('You are excused.'))
}
}