MIF_E31211879/desain/assets/node_modules/jquery-wizard-master/gulp/tasks/deploy.js

112 lines
2.7 KiB
JavaScript

'use strict';
import config from '../../config';
import gulp from 'gulp';
import inquirer from 'inquirer';
import replace from 'gulp-replace';
import {execSync as exec, spawnSync as spawn} from 'child_process';
let VERSIONED_FILES = [
'bower.json',
'package.json'
];
let CURRENT_VERSION = require('../../package.json').version;
let NEXT_VERSION;
let NEXT_MESSAGE;
export function prompt(done) {
inquirer.prompt([{
type: 'input',
name: 'version',
message: `What version are we moving to? (Current version is ${CURRENT_VERSION})`,
validate: function (input) {
if(input === '') {
input = CURRENT_VERSION;
}
return /^\d*[\d.]*\d*$/.test(input);
}
}]).then((answers) => {
if(answers.version === '') {
NEXT_VERSION = CURRENT_VERSION;
} else {
NEXT_VERSION = answers.version;
}
done();
});
}
export function message(done) {
inquirer.prompt([{
type: 'input',
name: 'message',
message: `What message are we going to commit?`,
validate: function (input) {
if(input === '' && NEXT_VERSION === CURRENT_VERSION) {
return false;
}
return true;
}
}]).then((answers) => {
if(answers.message !== ''){
NEXT_MESSAGE = answers.message;
}
done();
});
}
// Bumps the version number in any file that has one
export function version() {
return gulp.src(VERSIONED_FILES, { base: process.cwd() })
//.pipe(replace(CURRENT_VERSION, NEXT_VERSION))
.pipe(replace(/("|')version\1\s*:\s*("|')([\d.]+)\2/, `$1version$1:$2${NEXT_VERSION}$2`))
.pipe(gulp.dest('.'));
}
export function init(done) {
config.deploy = true;
config.init();
done();
}
// Writes a commit with the changes to the version numbers
export function commit(done) {
let message = `Bump to version ${NEXT_VERSION}`;
if(NEXT_VERSION === CURRENT_VERSION) {
message = NEXT_MESSAGE;
} else {
message = `${message}; ${NEXT_MESSAGE}`;
}
exec('git add .');
exec(`git commit -am "${message}"`);
exec(`git tag v${NEXT_VERSION}`);
exec('git push origin master --follow-tags');
done();
}
export function pull(done) {
let fail = function (msg) {
console.error('Prepare aborted.');
console.error(msg);
process.exit(1);
};
// Check for uncommitted changes
let gitStatusResult = exec('git status --porcelain');
if (gitStatusResult.toString().length > 0) {
return fail('You have uncommitted changes, please stash or commit them before running prepare');
}
// Pull latest
let gitPullResult = spawn('git', ['pull', 'origin', 'master']);
if (gitPullResult.status !== 0) {
let error = gitPullResult.stderr.toString();
return fail(`There was an error running 'git pull':\n${error}`);
}
return done();
}