Skip to content

Commit 99e73ed

Browse files
author
Kelly Selden
committed
add getBlueprintFilePath for custom config dirs
1 parent 682d7bb commit 99e73ed

14 files changed

Lines changed: 94 additions & 20 deletions

File tree

src/bootstrap.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
'use strict';
22

33
const path = require('path');
4-
const run = require('./run');
54
const getProjectOptions = require('./get-project-options');
65
const getPackageName = require('./get-package-name');
76
const getPackageVersion = require('./get-package-version');
@@ -10,6 +9,7 @@ const getProjectVersion = require('./get-project-version');
109
const saveDefaultBlueprint = require('./save-default-blueprint');
1110
const saveBlueprint = require('./save-blueprint');
1211
const loadSafeDefaultBlueprint = require('./load-safe-default-blueprint');
12+
const stageBlueprintFile = require('./stage-blueprint-file');
1313

1414
module.exports = async function bootstrap() {
1515
let defaultBlueprint = {
@@ -46,5 +46,5 @@ module.exports = async function bootstrap() {
4646
});
4747
}
4848

49-
await run('git add config/ember-cli-update.json');
49+
await stageBlueprintFile(cwd);
5050
};

src/get-blueprint-file-path.js

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
'use strict';
2+
3+
const fs = require('fs-extra');
4+
const path = require('path');
5+
6+
async function getBlueprintFilePath(cwd) {
7+
let configDir = 'config';
8+
9+
try {
10+
let packageJson = await fs.readJson(path.join(cwd, 'package.json'));
11+
12+
if (packageJson['ember-addon'] && packageJson['ember-addon'].configPath) {
13+
configDir = packageJson['ember-addon'].configPath;
14+
}
15+
} catch (err) {}
16+
17+
return path.join(cwd, configDir, 'ember-cli-update.json');
18+
}
19+
20+
module.exports = getBlueprintFilePath;

src/index.js

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
'use strict';
22

33
const inquirer = require('inquirer');
4-
const run = require('./run');
54
const getProjectOptions = require('./get-project-options');
65
const getPackageName = require('./get-package-name');
76
const getPackageVersion = require('./get-package-version');
@@ -20,6 +19,8 @@ const saveDefaultBlueprint = require('./save-default-blueprint');
2019
const checkForBlueprintUpdates = require('./check-for-blueprint-updates');
2120
const loadSafeDefaultBlueprint = require('./load-safe-default-blueprint');
2221
const loadSafeBlueprint = require('./load-safe-blueprint');
22+
const stageBlueprintFile = require('./stage-blueprint-file');
23+
const getBlueprintFilePath = require('./get-blueprint-file-path');
2324

2425
const toDefault = require('./args').to.default;
2526

@@ -197,7 +198,7 @@ All blueprints are up-to-date!`;
197198
runCodemods,
198199
codemodsUrl: 'https://raw.githubusercontent.com/ember-cli/ember-cli-update-codemods-manifest/v3/manifest.json',
199200
createCustomDiff,
200-
ignoredFiles: ['config/ember-cli-update.json'],
201+
ignoredFiles: [await getBlueprintFilePath(cwd)],
201202
wasRunAsExecutable
202203
})).promise;
203204

@@ -223,7 +224,7 @@ All blueprints are up-to-date!`;
223224
}
224225

225226
if (!reset) {
226-
await run('git add config/ember-cli-update.json');
227+
await stageBlueprintFile(cwd);
227228
}
228229
} else {
229230
let { blueprints } = await loadSafeBlueprintFile(cwd);
@@ -238,7 +239,7 @@ All blueprints are up-to-date!`;
238239
});
239240

240241
if (!reset) {
241-
await run('git add config/ember-cli-update.json');
242+
await stageBlueprintFile(cwd);
242243
}
243244
}
244245
}

src/init.js

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
'use strict';
22

3-
const run = require('./run');
43
const getProjectOptions = require('./get-project-options');
54
const boilerplateUpdate = require('boilerplate-update');
65
const getStartAndEndCommands = require('./get-start-and-end-commands');
@@ -10,6 +9,8 @@ const saveBlueprint = require('./save-blueprint');
109
const saveDefaultBlueprint = require('./save-default-blueprint');
1110
const loadSafeDefaultBlueprint = require('./load-safe-default-blueprint');
1211
const loadSafeBlueprint = require('./load-safe-blueprint');
12+
const stageBlueprintFile = require('./stage-blueprint-file');
13+
const getBlueprintFilePath = require('./get-blueprint-file-path');
1314

1415
module.exports = async function init({
1516
blueprint: _blueprint,
@@ -59,7 +60,7 @@ module.exports = async function init({
5960
endBlueprint: blueprint
6061
});
6162
},
62-
ignoredFiles: ['config/ember-cli-update.json'],
63+
ignoredFiles: [await getBlueprintFilePath(cwd)],
6364
wasRunAsExecutable
6465
})).promise;
6566

@@ -78,7 +79,7 @@ module.exports = async function init({
7879
}
7980

8081
if (!reset) {
81-
await run('git add config/ember-cli-update.json');
82+
await stageBlueprintFile(cwd);
8283
}
8384

8485
return result;

src/load-blueprint-file.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
'use strict';
22

33
const fs = require('fs-extra');
4-
const path = require('path');
4+
const getBlueprintFilePath = require('./get-blueprint-file-path');
55

66
async function loadBlueprintFile(cwd) {
77
try {
8-
return await fs.readJson(path.join(cwd, 'config/ember-cli-update.json'));
8+
return await fs.readJson(await getBlueprintFilePath(cwd));
99
} catch (err) {}
1010
}
1111

src/save-blueprint-file.js

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,12 @@
22

33
const fs = require('fs-extra');
44
const path = require('path');
5+
const getBlueprintFilePath = require('./get-blueprint-file-path');
56

67
async function saveBlueprintFile(cwd, emberCliUpdateJson) {
7-
let configDir = path.join(cwd, 'config');
8+
let emberCliUpdateJsonPath = await getBlueprintFilePath(cwd);
89

9-
await fs.ensureDir(configDir);
10-
11-
let emberCliUpdateJsonPath = path.join(configDir, 'ember-cli-update.json');
10+
await fs.ensureDir(path.dirname(emberCliUpdateJsonPath));
1211

1312
await fs.writeJson(emberCliUpdateJsonPath, emberCliUpdateJson, {
1413
spaces: 2,

src/save.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
'use strict';
22

3-
const run = require('./run');
43
const parseBlueprint = require('./parse-blueprint');
54
const downloadBlueprint = require('./download-blueprint');
65
const saveBlueprint = require('./save-blueprint');
6+
const stageBlueprintFile = require('./stage-blueprint-file');
77

88
module.exports = async function save({
99
blueprint,
@@ -22,5 +22,5 @@ module.exports = async function save({
2222
version: downloadedBlueprint.version
2323
});
2424

25-
await run('git add config/ember-cli-update.json');
25+
await stageBlueprintFile(cwd);
2626
};

src/stage-blueprint-file.js

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
'use strict';
2+
3+
const getBlueprintFilePath = require('./get-blueprint-file-path');
4+
const run = require('./run');
5+
6+
async function stageBlueprintFile(cwd) {
7+
let emberCliUpdateJsonPath = await getBlueprintFilePath(cwd);
8+
9+
await run(`git add ${emberCliUpdateJsonPath}`);
10+
}
11+
12+
module.exports = stageBlueprintFile;

test/fixtures/blueprint/app/legacy-app/local/my-app/config/ember-cli-update.json renamed to test/fixtures/blueprint/app/legacy-app/local/my-app/config2/ember-cli-update.json

File renamed without changes.

test/fixtures/blueprint/app/legacy-app/local/my-app/package.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,8 @@
22
"name": "my-app",
33
"version": "0.0.0",
44
"description": "",
5-
"main": "index.js"
5+
"main": "index.js",
6+
"ember-addon": {
7+
"configPath": "config2"
8+
}
69
}

0 commit comments

Comments
 (0)