UNPKG

1.15 kBJavaScriptView Raw
1// copied from plugin-pipelines-v5
2let validator = require('validator')
3let inquirer = require('inquirer')
4let api = require('./api')
5
6function* disambiguate (heroku, pipelineIDOrName) {
7 var pipeline
8 if (validator.isUUID(pipelineIDOrName)) {
9 pipeline = yield api.getPipeline(heroku, pipelineIDOrName)
10 } else {
11 let pipelines = yield api.findPipelineByName(heroku, pipelineIDOrName)
12 if (pipelines.length === 0) {
13 throw new Error('Pipeline not found')
14 } else if (pipelines.length === 1) {
15 pipeline = pipelines[0]
16 } else {
17 // Disambiguate
18 let choices = pipelines.map(function (x) { return {name: new Date(x.created_at), value: x} })
19 let questions = [{
20 type: 'list',
21 name: 'pipeline',
22 message: `Which ${pipelineIDOrName} pipeline?`,
23 choices: choices
24 }]
25 pipeline = yield new Promise(function (resolve, reject) {
26 inquirer.prompt(questions, function (answers) {
27 if (answers.pipeline) resolve(answers.pipeline)
28 else reject('Must pick a pipeline')
29 })
30 })
31 }
32 }
33 return pipeline
34}
35
36module.exports = disambiguate