diff --git a/lib/contributors/prompt.js b/lib/contributors/prompt.js index 6da458c..b91fe74 100644 --- a/lib/contributors/prompt.js +++ b/lib/contributors/prompt.js @@ -29,8 +29,27 @@ function getQuestions(options, username, contributions) { name: 'contributions', message: 'What are the contribution types?', when: !contributions, + default: function (answers) { + // default values for contributions when updating existing users + answers.username = answers.username || username; + return options.contributors + .filter((entry) => entry.login.toLowerCase() === answers.username.toLowerCase()) + .reduce((allEntries, entry) => allEntries.concat(entry.contributions), []); + }, choices: contributionChoices(options), - validate: input => input.length ? true : 'Use space to select at least one contribution type.' + validate: function (input, answers) { + answers.username = answers.username || username; + var previousContributions = options.contributors + .filter((entry) => entry.login.toLowerCase() === answers.username.toLowerCase()) + .reduce((allEntries, entry) => allEntries.concat(entry.contributions), []); + + if (!input.length) { + return 'Use space to select at least one contribution type.'; + } else if (_.isEqual(input, previousContributions)) { + return 'Nothing changed, use space to select contribution types.'; + } + return true; + } }]; }