From 4cdb0fe102d6aa2c1f614ce56848bdac57c7ebf8 Mon Sep 17 00:00:00 2001 From: Deepu k Sasidharan Date: Wed, 18 May 2016 11:41:25 +0800 Subject: [PATCH 1/6] fix lint erros #3596 --- generators/generator-base.js | 2 +- generators/upgrade/index.js | 3 --- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/generators/generator-base.js b/generators/generator-base.js index 456f913761e5..e8231bfdf5ea 100644 --- a/generators/generator-base.js +++ b/generators/generator-base.js @@ -1434,6 +1434,6 @@ Generator.prototype.isGitInstalled = function (successCb, errorCb) { successCb && successCb(); } }.bind(this)); -} +}; Generator.prototype.contains = _.includes; diff --git a/generators/upgrade/index.js b/generators/upgrade/index.js index 848dbeebd1c0..f42b0e760a0c 100644 --- a/generators/upgrade/index.js +++ b/generators/upgrade/index.js @@ -3,7 +3,6 @@ var util = require('util'), generators = require('yeoman-generator'), chalk = require('chalk'), scriptBase = require('../generator-base'), - packagejs = require('../../package.json'), fs = require('fs'), shelljs = require('shelljs'), semver = require('semver'), @@ -13,8 +12,6 @@ var UpgradeGenerator = generators.Base.extend({}); util.inherits(UpgradeGenerator, scriptBase); -var configOptions = {}; - /* Constants used throughout */ const GENERATOR_JHIPSTER = 'generator-jhipster', UPGRADE_BRANCH = 'jhipster_upgrade'; From 5d5aa9090239816a29f1b4e6d825b74c3893eb13 Mon Sep 17 00:00:00 2001 From: Deepu k Sasidharan Date: Wed, 18 May 2016 12:04:29 +0800 Subject: [PATCH 2/6] use custom git exec #3596 --- generators/app/index.js | 8 +++----- generators/generator-base.js | 26 ++++++++++++++++++++------ generators/upgrade/index.js | 11 ++++------- package.json | 3 +-- 4 files changed, 28 insertions(+), 20 deletions(-) diff --git a/generators/app/index.js b/generators/app/index.js index ccd415c135a4..e76ef387d8bd 100644 --- a/generators/app/index.js +++ b/generators/app/index.js @@ -102,12 +102,10 @@ module.exports = JhipsterGenerator.extend({ checkGit: function () { if (!this.checkInstall || this.skipClient) return; var done = this.async(); - this.isGitInstalled(function () { - this.gitInstalled = true; + this.isGitInstalled(function (code) { + this.gitInstalled = code === 0; done(); - }.bind(this), function () { - done(); - }); + }.bind(this)); }, checkGitConnection: function () { diff --git a/generators/generator-base.js b/generators/generator-base.js index e8231bfdf5ea..d1279e206512 100644 --- a/generators/generator-base.js +++ b/generators/generator-base.js @@ -1423,17 +1423,31 @@ Generator.prototype.warning = function(msg) { this.log(chalk.yellow.bold('WARNING! ') + msg); }; -Generator.prototype.isGitInstalled = function (successCb, errorCb) { - exec('git --version', function (err) { - if (err) { +Generator.prototype.isGitInstalled = function (callback) { + this.gitExec('--version', function (code) { + if (code !== 0) { this.warning('git is not found on your computer.\n', ' Install git: ' + chalk.yellow('http://git-scm.com/') ); - errorCb && errorCb(); - } else { - successCb && successCb(); } + callback && callback(code) }.bind(this)); }; +/* + * options is optional and takes any of child process options + * The call back will receive code, stdout and stderr + */ +Generator.prototype.gitExec = function (command, options, callback) { + callback = arguments[arguments.length - 1]; + if (arguments.length == 2) { + options = {}; + } + options.async = true; + options.silent = true; + + command = 'git ' + command; + shelljs.exec(command, options, callback); +}; + Generator.prototype.contains = _.includes; diff --git a/generators/upgrade/index.js b/generators/upgrade/index.js index f42b0e760a0c..16f105608349 100644 --- a/generators/upgrade/index.js +++ b/generators/upgrade/index.js @@ -5,8 +5,7 @@ var util = require('util'), scriptBase = require('../generator-base'), fs = require('fs'), shelljs = require('shelljs'), - semver = require('semver'), - Git = require('git-wrapper'); + semver = require('semver'); var UpgradeGenerator = generators.Base.extend({}); @@ -62,12 +61,10 @@ module.exports = UpgradeGenerator.extend({ configuring: { assertGitPresent: function() { var done = this.async(); - this.isGitInstalled(function () { + this.isGitInstalled(function (code) { + if (code !== 0) this.error('Exiting the process.'); done(); - }, function () { - this.error('Exiting the process.'); - done(); - }); + }.bind(this)); }, checkLatestVersion: function() { diff --git a/package.json b/package.json index 643f89779486..367a0e934e38 100644 --- a/package.json +++ b/package.json @@ -49,8 +49,7 @@ "js-yaml": "3.6.0", "yo": "1.7.0", "semver": "5.1.0", - "jhipster-uml": "1.6.1", - "git-wrapper": "0.1.1" + "jhipster-uml": "1.6.1" }, "devDependencies": { "eslint": "2.8.0", From 92994b2856e5df1c895c0aeb9d11bfd82b07764f Mon Sep 17 00:00:00 2001 From: Deepu k Sasidharan Date: Wed, 18 May 2016 12:33:08 +0800 Subject: [PATCH 3/6] use custom git exec for commands #3596 --- generators/generator-base.js | 11 ++++++-- generators/upgrade/index.js | 54 ++++++++++++++++++------------------ 2 files changed, 35 insertions(+), 30 deletions(-) diff --git a/generators/generator-base.js b/generators/generator-base.js index d1279e206512..253af1cf148b 100644 --- a/generators/generator-base.js +++ b/generators/generator-base.js @@ -1436,17 +1436,22 @@ Generator.prototype.isGitInstalled = function (callback) { /* * options is optional and takes any of child process options + * gitExec(args [, options ], callback) + * args can be an array of arguments * The call back will receive code, stdout and stderr */ -Generator.prototype.gitExec = function (command, options, callback) { +Generator.prototype.gitExec = function (args, options, callback) { callback = arguments[arguments.length - 1]; - if (arguments.length == 2) { + if (arguments.length < 3) { options = {}; } options.async = true; options.silent = true; - command = 'git ' + command; + if (!Array.isArray(args)) { + args = [args]; + } + var command = 'git ' + args.join(' '); shelljs.exec(command, options, callback); }; diff --git a/generators/upgrade/index.js b/generators/upgrade/index.js index 16f105608349..f3afdcd80443 100644 --- a/generators/upgrade/index.js +++ b/generators/upgrade/index.js @@ -36,8 +36,8 @@ module.exports = UpgradeGenerator.extend({ _gitCheckout: function(branch) { var done = this.async(); - this.git.exec('checkout', {q: true}, [branch], function(err, msg) { - if (err != null) this.error('Unable to checkout branch ' + branch + ':\n' + err); + this.gitExec(['checkout', '-q', branch], function(code, msg, err) { + if (code !== 0) this.error('Unable to checkout branch ' + branch + ':\n' + err); this.log('Checked out branch \'' + branch + '\''); done(); }.bind(this)); @@ -45,15 +45,14 @@ module.exports = UpgradeGenerator.extend({ _gitCommitAll: function(commitMsg, callback) { var commit = function() { - this.git.exec('commit', {q: true}, ['-m \"' + commitMsg + '\"', '-a', '--allow-empty'], function(err, msg) { - if (err != null) this.error('Unable to commit in git:\n' + err); + this.gitExec(['commit', '-q', '-m', '\"' + commitMsg + '\"', '-a', '--allow-empty'], function(code, msg, err) { + if (code !== 0) this.error('Unable to commit in git:\n' + err); this.log('Committed: ' + commitMsg); callback(); }.bind(this)); }.bind(this); - /* TODO change: temporary workaround due to https://github.com/pvorb/node-git-wrapper/pull/7 */ - shelljs.exec('git add -A', {maxBuffer: 1024 * 500}, function(code, stdout, stderr) { - if (code !== 0) this.error('Unable to add resources in git:\n' + stderr); + this.gitExec(['add', '-A'], {maxBuffer: 1024 * 500}, function(code, msg, err) { + if (code !== 0) this.error('Unable to add resources in git:\n' + err); commit(); }.bind(this)); }, @@ -70,8 +69,8 @@ module.exports = UpgradeGenerator.extend({ checkLatestVersion: function() { this.log('Looking for latest ' + GENERATOR_JHIPSTER + ' version...'); var done = this.async(); - shelljs.exec('npm show ' + GENERATOR_JHIPSTER + ' version', {silent:true}, function (code, stdout, stderr) { - this.latestVersion = stdout.replace('\n',''); + shelljs.exec('npm show ' + GENERATOR_JHIPSTER + ' version', {silent:true}, function (code, msg, err) { + this.latestVersion = msg.replace('\n',''); if (semver.lt(this.currentVersion, this.latestVersion)) { this.log(chalk.green('New ' + GENERATOR_JHIPSTER + ' version found: ' + this.latestVersion)); } else if (this.force) { @@ -86,8 +85,8 @@ module.exports = UpgradeGenerator.extend({ assertGitRepository: function() { if (! fs.existsSync('.git')) { var done = this.async(); - this.git.exec('init', {}, [], function(err, msg) { - if (err != null) this.error('Unable to initialize a new git repository:\n' + err); + this.gitExec('init', function(code, msg, err) { + if (code !== 0) this.error('Unable to initialize a new git repository:\n' + err); this.log('Initialized a new git repository'); this._gitCommitAll('Initial', function() { done(); @@ -98,8 +97,8 @@ module.exports = UpgradeGenerator.extend({ assertNoLocalChanges: function() { var done = this.async(); - this.git.exec('status', {}, ['--porcelain'], function(err, msg) { - if (err != null) this.error('Unable to check for local changes:\n' + err); + this.gitExec(['status', '--porcelain'], function(code, msg, err) { + if (code !== 0) this.error('Unable to check for local changes:\n' + err); if (msg != null && msg !== '') { this.warning(' local changes found.\n' + '\tPlease commit/stash them before upgrading'); @@ -111,8 +110,8 @@ module.exports = UpgradeGenerator.extend({ detectCurrentBranch: function() { var done = this.async(); - this.git.exec('rev-parse', {q: true}, ['--abbrev-ref', 'HEAD'], function(err, msg) { - if (err != null) this.error('Unable to detect current git branch:\n' + err); + this.gitExec(['rev-parse', '-q', '--abbrev-ref', 'HEAD'], function(code, msg, err) { + if (code !== 0) this.error('Unable to detect current git branch:\n' + err); this.sourceBranch = msg.replace('\n',''); done(); }.bind(this)); @@ -121,15 +120,15 @@ module.exports = UpgradeGenerator.extend({ prepareUpgradeBranch: function() { var done = this.async(); var createUpgradeBranch = function(callback) { - this.git.exec('branch', {q: true}, [UPGRADE_BRANCH], function(err, msg) { - if (err != null) this.error('Unable to create ' + UPGRADE_BRANCH + ':\n' + err); + this.gitExec(['branch', '-q', UPGRADE_BRANCH], function(code, msg, err) { + if (code !== 0) this.error('Unable to create ' + UPGRADE_BRANCH + ':\n' + err); this.log('Created branch ' + UPGRADE_BRANCH); this._gitCheckout(UPGRADE_BRANCH); callback(); }.bind(this)); }.bind(this); - this.git.exec('rev-parse', {q: true}, ['--verify', UPGRADE_BRANCH], function(err, msg) { - if (err != null) createUpgradeBranch(done); + this.gitExec(['rev-parse', '-q', '--verify', UPGRADE_BRANCH], function(code, msg, err) { + if (code !== 0) createUpgradeBranch(done); else done(); }.bind(this)); } @@ -144,26 +143,27 @@ module.exports = UpgradeGenerator.extend({ updateJhipster: function() { this.log('Updating ' + GENERATOR_JHIPSTER + '. This might take some time...'); var done = this.async(); - shelljs.exec('npm install -g ' + GENERATOR_JHIPSTER, {silent:true}, function (code, stdout, stderr) { + shelljs.exec('npm install -g ' + GENERATOR_JHIPSTER, {silent:true}, function (code, msg, err) { if (code === 0) this.log(chalk.green('Updated ' + GENERATOR_JHIPSTER + ' to version ' + this.latestVersion)); - else this.error('Something went wrong while updating generator! ' + stderr); + else this.error('Something went wrong while updating generator! ' + err); done(); }.bind(this)); }, cleanUp: function() { var done = this.async(); - shelljs.rm('-rf', '!(.yo-rc.json|.git)'); - this.log('Cleaned up directory'); + if (shelljs.rm('-rf', '!(.yo-rc.json|.git)').code === 0 ) { + this.log('Cleaned up directory'); + } done(); }, generate: function() { this.log('Regenerating app with jhipster ' + this.latestVersion + '...'); var done = this.async(); - shelljs.exec('yo jhipster --force --with-entities', {silent:false}, function (code, stdout, stderr) { + shelljs.exec('yo jhipster --force --with-entities', {silent:false}, function (code, msg, err) { if (code === 0) this.log(chalk.green('Successfully regenerated app with jhipster ' + this.latestVersion)); - else this.error('Something went wrong while generating project! '+ stderr); + else this.error('Something went wrong while generating project! '+ err); done(); }.bind(this)); }, @@ -182,8 +182,8 @@ module.exports = UpgradeGenerator.extend({ mergeChangesBack: function() { this.log('Merging changes back to ' + this.sourceBranch + '...'); var done = this.async(); - this.git.exec('merge', {q: true}, [UPGRADE_BRANCH], function(err, msg) { - if (err != null) this.error('Unable to merge changes back to ' + this.sourceBranch + ':\n' + err); + this.gitExec(['merge', '-q', UPGRADE_BRANCH], function(code, msg, err) { + if (code !== 0) this.error('Unable to merge changes back to ' + this.sourceBranch + ':\n' + err); this.log(chalk.green('Merge done !') + '\n\tPlease now fix conflicts if any, and commit !'); done(); }.bind(this)); From 87f71a8dffb5faab9e6b515a6e33806c43337dfe Mon Sep 17 00:00:00 2001 From: Deepu k Sasidharan Date: Wed, 18 May 2016 12:59:24 +0800 Subject: [PATCH 4/6] polish #3596 --- generators/generator-base.js | 2 +- generators/generator-constants.js | 1 - generators/upgrade/index.js | 6 ++---- 3 files changed, 3 insertions(+), 6 deletions(-) diff --git a/generators/generator-base.js b/generators/generator-base.js index 253af1cf148b..4848e2f081d9 100644 --- a/generators/generator-base.js +++ b/generators/generator-base.js @@ -1430,7 +1430,7 @@ Generator.prototype.isGitInstalled = function (callback) { ' Install git: ' + chalk.yellow('http://git-scm.com/') ); } - callback && callback(code) + callback && callback(code); }.bind(this)); }; diff --git a/generators/generator-constants.js b/generators/generator-constants.js index 87d9b09a887b..05abd3f2acb0 100644 --- a/generators/generator-constants.js +++ b/generators/generator-constants.js @@ -28,7 +28,6 @@ const constants = { SERVER_QUESTIONS: 12, INTERPOLATE_REGEX: /<%:([\s\S]+?)%>/g, // so that tags in templates do not get mistreated as _ templates DOCKER_DIR: MAIN_DIR + 'docker/', - JHIPSTER_CONFIG_DIR: '.jhipster/', MAIN_DIR: MAIN_DIR, TEST_DIR: TEST_DIR, diff --git a/generators/upgrade/index.js b/generators/upgrade/index.js index f3afdcd80443..ecdef161d937 100644 --- a/generators/upgrade/index.js +++ b/generators/upgrade/index.js @@ -18,8 +18,6 @@ const GENERATOR_JHIPSTER = 'generator-jhipster', module.exports = UpgradeGenerator.extend({ constructor: function () { generators.Base.apply(this, arguments); - - this.git = new Git(); this.force = this.options['force']; }, @@ -140,7 +138,7 @@ module.exports = UpgradeGenerator.extend({ insight.trackWithEvent('generator', 'upgrade'); }, - updateJhipster: function() { + /*updateJhipster: function() { this.log('Updating ' + GENERATOR_JHIPSTER + '. This might take some time...'); var done = this.async(); shelljs.exec('npm install -g ' + GENERATOR_JHIPSTER, {silent:true}, function (code, msg, err) { @@ -149,7 +147,7 @@ module.exports = UpgradeGenerator.extend({ done(); }.bind(this)); }, - +*/ cleanUp: function() { var done = this.async(); if (shelljs.rm('-rf', '!(.yo-rc.json|.git)').code === 0 ) { From 4cd09b2151ff51dd1cbc1df9a1335c493e55757f Mon Sep 17 00:00:00 2001 From: Deepu k Sasidharan Date: Wed, 18 May 2016 13:02:50 +0800 Subject: [PATCH 5/6] polish #3596 --- generators/upgrade/index.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/generators/upgrade/index.js b/generators/upgrade/index.js index ecdef161d937..ca397cd905cf 100644 --- a/generators/upgrade/index.js +++ b/generators/upgrade/index.js @@ -138,7 +138,7 @@ module.exports = UpgradeGenerator.extend({ insight.trackWithEvent('generator', 'upgrade'); }, - /*updateJhipster: function() { + updateJhipster: function() { this.log('Updating ' + GENERATOR_JHIPSTER + '. This might take some time...'); var done = this.async(); shelljs.exec('npm install -g ' + GENERATOR_JHIPSTER, {silent:true}, function (code, msg, err) { @@ -147,7 +147,7 @@ module.exports = UpgradeGenerator.extend({ done(); }.bind(this)); }, -*/ + cleanUp: function() { var done = this.async(); if (shelljs.rm('-rf', '!(.yo-rc.json|.git)').code === 0 ) { From e34bcb02a0757e8aa2e6c9e40f313d6119455bee Mon Sep 17 00:00:00 2001 From: Deepu k Sasidharan Date: Wed, 18 May 2016 13:16:54 +0800 Subject: [PATCH 6/6] polish commit msg #3596 --- generators/upgrade/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/generators/upgrade/index.js b/generators/upgrade/index.js index ca397cd905cf..c845bfaf3749 100644 --- a/generators/upgrade/index.js +++ b/generators/upgrade/index.js @@ -168,7 +168,7 @@ module.exports = UpgradeGenerator.extend({ commitChanges: function() { var done = this.async(); - this._gitCommitAll('Upgrade to ' + this.latestVersion, function() { + this._gitCommitAll('Upgrade to JHipster ' + this.latestVersion, function() { done(); }); },