@enplug/scripts
Version:
Enplug scripts
46 lines (41 loc) • 1.32 kB
JavaScript
const inquirer = require('inquirer');
const chalk = require('chalk');
function checkForExistingRelease(s3Client, bucket, prefix) {
return new Promise(function (resolve, reject) {
var query = s3Client.listObjects({
s3Params: {
Bucket: bucket,
MaxKeys: 2,
Prefix: prefix
}
});
query.once('error', function (err) {
console.error('Cannot verify whether this version already exists on S3.');
console.error(err);
return promptForContinue(resolve, reject, 'Release anyway (files might be overwritten)?');
});
query.on('data', function () {
if (!query.objectsFound) {
resolve();
return;
}
query.abort();
return promptForContinue(resolve, reject, `This version already exists in the ${chalk.default.yellow(bucket)} bucket. Overwrite?`);
});
});
}
function promptForContinue(resolve, reject, message) {
return inquirer.prompt({
message: message,
name: 'confirm',
type: 'confirm',
default: false
}).then(function (value) {
if (value.confirm) {
console.log(chalk.default.magentaBright('Files without changes will not be uploaded.'));
resolve();
}
else { reject(); }
});
}
module.exports = checkForExistingRelease;