From f2f5ff925033d16365397a909132e294d4b155e3 Mon Sep 17 00:00:00 2001 From: Mike Brocchi Date: Sat, 12 Mar 2016 12:31:32 -0500 Subject: [PATCH] fix(paths): fix the determination of execution path Windows does not populate this fix allows for determination of the directory from which an ng command was executed Fixes #297 --- addon/ng2/blueprints/component/index.js | 6 +----- addon/ng2/blueprints/directive/index.js | 6 +----- addon/ng2/blueprints/pipe/index.js | 6 +----- addon/ng2/blueprints/service/index.js | 6 +----- addon/ng2/utilities/dynamic-path-parser.js | 5 ++++- lib/cli/index.js | 5 ++++- tests/acceptance/generate-component.spec.js | 4 ---- tests/helpers/ng.js | 4 +++- 8 files changed, 15 insertions(+), 27 deletions(-) diff --git a/addon/ng2/blueprints/component/index.js b/addon/ng2/blueprints/component/index.js index b0fa1925397e..9af8160bf9ce 100644 --- a/addon/ng2/blueprints/component/index.js +++ b/addon/ng2/blueprints/component/index.js @@ -5,11 +5,7 @@ module.exports = { description: '', normalizeEntityName: function(entityName) { - var cwd = this.project.cli.testing - ? process.cwd() - : process.env.PWD; - - var parsedPath = dynamicPathParser(cwd, this.project.root, entityName); + var parsedPath = dynamicPathParser(this.project, entityName); this.dynamicPath = parsedPath; return parsedPath.name; diff --git a/addon/ng2/blueprints/directive/index.js b/addon/ng2/blueprints/directive/index.js index b0fa1925397e..9af8160bf9ce 100644 --- a/addon/ng2/blueprints/directive/index.js +++ b/addon/ng2/blueprints/directive/index.js @@ -5,11 +5,7 @@ module.exports = { description: '', normalizeEntityName: function(entityName) { - var cwd = this.project.cli.testing - ? process.cwd() - : process.env.PWD; - - var parsedPath = dynamicPathParser(cwd, this.project.root, entityName); + var parsedPath = dynamicPathParser(this.project, entityName); this.dynamicPath = parsedPath; return parsedPath.name; diff --git a/addon/ng2/blueprints/pipe/index.js b/addon/ng2/blueprints/pipe/index.js index b0fa1925397e..9af8160bf9ce 100644 --- a/addon/ng2/blueprints/pipe/index.js +++ b/addon/ng2/blueprints/pipe/index.js @@ -5,11 +5,7 @@ module.exports = { description: '', normalizeEntityName: function(entityName) { - var cwd = this.project.cli.testing - ? process.cwd() - : process.env.PWD; - - var parsedPath = dynamicPathParser(cwd, this.project.root, entityName); + var parsedPath = dynamicPathParser(this.project, entityName); this.dynamicPath = parsedPath; return parsedPath.name; diff --git a/addon/ng2/blueprints/service/index.js b/addon/ng2/blueprints/service/index.js index b0fa1925397e..9af8160bf9ce 100644 --- a/addon/ng2/blueprints/service/index.js +++ b/addon/ng2/blueprints/service/index.js @@ -5,11 +5,7 @@ module.exports = { description: '', normalizeEntityName: function(entityName) { - var cwd = this.project.cli.testing - ? process.cwd() - : process.env.PWD; - - var parsedPath = dynamicPathParser(cwd, this.project.root, entityName); + var parsedPath = dynamicPathParser(this.project, entityName); this.dynamicPath = parsedPath; return parsedPath.name; diff --git a/addon/ng2/utilities/dynamic-path-parser.js b/addon/ng2/utilities/dynamic-path-parser.js index e63ce15b3390..ac6ad93ddcb2 100644 --- a/addon/ng2/utilities/dynamic-path-parser.js +++ b/addon/ng2/utilities/dynamic-path-parser.js @@ -1,7 +1,10 @@ var path = require('path'); var process = require('process'); -module.exports = function dynamicPathParser(cwd, projectRoot, entityName) { +module.exports = function dynamicPathParser(project, entityName) { + var projectRoot = project.root; + var cwd = process.env.PWD; + var rootPath = path.join(projectRoot, 'src', 'app'); var outputPath = path.join(rootPath, entityName); diff --git a/lib/cli/index.js b/lib/cli/index.js index 0a42054b7efe..32c13b5c8302 100644 --- a/lib/cli/index.js +++ b/lib/cli/index.js @@ -61,6 +61,9 @@ module.exports = function(options) { root: path.join(__dirname, '..', '..'), npmPackage: 'angular-cli' }; - + + // ensure the environemnt variable for dynamic paths + process.env.PWD = process.env.PWD || process.cwd(); + return cli(options); } diff --git a/tests/acceptance/generate-component.spec.js b/tests/acceptance/generate-component.spec.js index 685ba615badf..74f53aa63222 100644 --- a/tests/acceptance/generate-component.spec.js +++ b/tests/acceptance/generate-component.spec.js @@ -87,7 +87,6 @@ describe('Acceptance: ng generate component', function() { .then(_ => fs.mkdirsSync('./1')) .then(_ => process.chdir('./1')) .then(_ => { - process.env.CWD = process.cwd(); return ng([ 'generate', 'component', @@ -109,7 +108,6 @@ describe('Acceptance: ng generate component', function() { .then(_ => fs.mkdirsSync('./1')) .then(_ => process.chdir('./1')) .then(_ => { - process.env.CWD = process.cwd(); return ng([ 'generate', 'component', @@ -131,7 +129,6 @@ describe('Acceptance: ng generate component', function() { .then(_ => fs.mkdirsSync('./1')) .then(_ => process.chdir('./1')) .then(_ => { - process.env.CWD = process.cwd(); return ng([ 'generate', 'component', @@ -153,7 +150,6 @@ describe('Acceptance: ng generate component', function() { .then(_ => fs.mkdirsSync('./1')) .then(_ => process.chdir('./1')) .then(_ => { - process.env.CWD = process.cwd(); return ng([ 'generate', 'component', diff --git a/tests/helpers/ng.js b/tests/helpers/ng.js index e65fe736166b..954d169cb517 100644 --- a/tests/helpers/ng.js +++ b/tests/helpers/ng.js @@ -6,7 +6,9 @@ var Cli = require('../../lib/cli'); module.exports = function ng(args) { var cli; - + + process.env.PWD = process.cwd(); + cli = new Cli({ inputStream: [], outputStream: [],