Skip to content

Commit df37308

Browse files
author
Kelly Selden
committed
save state file by default
1 parent 21d3cf2 commit df37308

13 files changed

Lines changed: 162 additions & 48 deletions

File tree

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ ember-cli-update --run-codemods
7474
|---|---|---|---|---|
7575
| --blueprint | Provide a custom blueprint for use in the update | String | "@glimmer/blueprint" "git+https://[email protected]/tildeio/libkit.git" "../blueprint" | |
7676
| --from | Use a starting version that is different than what is in your package.json | String | "2.9.1" | |
77-
| --to | Update to a version that isn\'t latest | String | "2.14.1" "~2.15" "latest" "beta" | "*" |
77+
| --to | Update to a version that isn\'t latest | String | "2.14.1" "~2.15" "latest" "beta" | |
7878
| --resolve-conflicts | Automatically run git mergetool if conflicts found | Boolean | | false |
7979
| --run-codemods | Run codemods to help update your code | Boolean | | false |
8080
| --codemods-source | Supply your own codemods manifest via URL | String | "ember-app-codemods-manifest@*" "git+https://github.com/ember-cli/ember-app-codemods-manifest.git#semver:*" | |

src/args.js

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

3-
const { defaultTo } = require('./constants');
4-
53
module.exports = {
64
'blueprint': {
75
alias: ['b'],
@@ -14,7 +12,6 @@ module.exports = {
1412
},
1513
'to': {
1614
type: 'string',
17-
default: defaultTo,
1815
description: 'Update to a version that isn\'t latest ("2.14.1", "~2.15", "latest", "beta")'
1916
},
2017
'resolve-conflicts': {

src/choose-blueprint-updates.js

Lines changed: 24 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,9 @@ async function chooseBlueprint({
2929
async function chooseBlueprintUpdates({
3030
cwd,
3131
emberCliUpdateJson,
32-
reset
32+
reset,
33+
to
3334
}) {
34-
let to;
3535
let existingBlueprint;
3636
let areAllUpToDate;
3737

@@ -87,28 +87,30 @@ All blueprints are up-to-date!`);
8787

8888
existingBlueprint = blueprintUpdate.blueprint;
8989

90-
let latestVersion = `${blueprintUpdate.latestVersion} (latest)`;
91-
92-
let answer = await inquirer.prompt([{
93-
type: 'list',
94-
message: 'Do you want the latest version?',
95-
name: 'choice',
96-
choices: [
97-
latestVersion,
98-
'SemVer string'
99-
]
100-
}]);
101-
102-
if (answer.choice === latestVersion) {
103-
to = defaultTo;
104-
} else {
105-
answer = await inquirer.prompt([{
106-
type: 'input',
107-
message: 'What version?',
108-
name: 'semver'
90+
if (typeof to !== 'string') {
91+
let latestVersion = `${blueprintUpdate.latestVersion} (latest)`;
92+
93+
let answer = await inquirer.prompt([{
94+
type: 'list',
95+
message: 'Do you want the latest version?',
96+
name: 'choice',
97+
choices: [
98+
latestVersion,
99+
'SemVer string'
100+
]
109101
}]);
110102

111-
to = answer.semver;
103+
if (answer.choice === latestVersion) {
104+
to = defaultTo;
105+
} else {
106+
answer = await inquirer.prompt([{
107+
type: 'input',
108+
message: 'What version?',
109+
name: 'semver'
110+
}]);
111+
112+
to = answer.semver;
113+
}
112114
}
113115
}
114116
}

src/index.js

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ module.exports = async function emberCliUpdate({
5050
blueprint: _blueprint,
5151
blueprintOptions,
5252
from,
53-
to = defaultTo,
53+
to,
5454
resolveConflicts,
5555
runCodemods,
5656
codemodsSource,
@@ -72,7 +72,6 @@ module.exports = async function emberCliUpdate({
7272

7373
let blueprint;
7474
let packageUrl;
75-
let isPersistedBlueprint;
7675

7776
if (_blueprint) {
7877
let parsedPackage = await parseBlueprintPackage({
@@ -89,7 +88,6 @@ module.exports = async function emberCliUpdate({
8988

9089
let existingBlueprint = findBlueprint(emberCliUpdateJson, packageName, packageName);
9190
if (existingBlueprint) {
92-
isPersistedBlueprint = true;
9391
blueprint = existingBlueprint;
9492
} else {
9593
blueprint = {
@@ -115,16 +113,15 @@ module.exports = async function emberCliUpdate({
115113
if (!blueprints.length) {
116114
blueprint = loadDefaultBlueprint();
117115
} else {
118-
isPersistedBlueprint = true;
119-
120116
let {
121117
areAllUpToDate,
122118
blueprint: _blueprint,
123119
to: _to
124120
} = await chooseBlueprintUpdates({
125121
cwd,
126122
emberCliUpdateJson,
127-
reset
123+
reset,
124+
to
128125
});
129126

130127
if (areAllUpToDate) {
@@ -167,6 +164,10 @@ module.exports = async function emberCliUpdate({
167164
blueprint.isBaseBlueprint = true;
168165
}
169166

167+
if (typeof to !== 'string') {
168+
to = defaultTo;
169+
}
170+
170171
let endBlueprint;
171172

172173
let {
@@ -259,7 +260,7 @@ module.exports = async function emberCliUpdate({
259260
promise: (async() => {
260261
let result = await promise;
261262

262-
if (_blueprint || isPersistedBlueprint) {
263+
if (!(compareOnly || statsOnly || listCodemods || runCodemods)) {
263264
await saveBlueprint({
264265
emberCliUpdateJsonPath,
265266
blueprint: endBlueprint

test/acceptance/ember-addon-test.js

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,9 @@ const {
1515
assertNoUnstaged
1616
} = require('../helpers/assertions');
1717
const mutatePackageJson = require('boilerplate-update/src/mutate-package-json');
18+
const getBlueprintFilePath = require('../../src/get-blueprint-file-path');
19+
const loadSafeBlueprintFile = require('../../src/load-safe-blueprint-file');
20+
const saveBlueprintFile = require('../../src/save-blueprint-file');
1821

1922
describe(function() {
2023
this.timeout(30 * 1000);
@@ -98,6 +101,15 @@ describe(function() {
98101
pkg.devDependencies = require('../fixtures/app/merge/my-app/package').devDependencies;
99102
});
100103

104+
let emberCliUpdateJsonPath = await getBlueprintFilePath(tmpPath);
105+
106+
let emberCliUpdateJson = await loadSafeBlueprintFile(emberCliUpdateJsonPath);
107+
108+
// remove --no-welcome
109+
delete emberCliUpdateJson.blueprints[0].options;
110+
111+
await saveBlueprintFile(emberCliUpdateJsonPath, emberCliUpdateJson);
112+
101113
fixtureCompare({
102114
mergeFixtures: 'test/fixtures/app/merge/my-app'
103115
});

test/acceptance/ember-cli-update-test.js

Lines changed: 3 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ describe(function() {
5858
await beforeMerge();
5959

6060
let args = [
61-
`--to=${to}`,
61+
...to ? [`--to=${to}`] : [],
6262
'--resolve-conflicts'
6363
];
6464
if (runCodemods) {
@@ -69,7 +69,7 @@ describe(function() {
6969
if (init) {
7070
args = [
7171
'init',
72-
`--to=${to}`
72+
...to ? [`--to=${to}`] : []
7373
];
7474
}
7575
if (install) {
@@ -287,7 +287,7 @@ describe(function() {
287287
} = await merge({
288288
fixturesPath: 'test/fixtures/blueprint/app/local-app/local',
289289
commitMessage: 'my-app',
290-
to,
290+
to: null,
291291
async beforeMerge() {
292292
await initBlueprint({
293293
fixturesPath: 'test/fixtures/blueprint/app/local',
@@ -406,11 +406,6 @@ describe(function() {
406406
to: '2.11.1'
407407
})).promise;
408408

409-
expect(path.join(tmpPath, 'config/ember-cli-update.json')).to.be.a.file()
410-
.and.equal('test/fixtures/ember-cli-update-json/default/config/ember-cli-update.json');
411-
412-
await fs.remove(path.join(tmpPath, 'config/ember-cli-update.json'));
413-
414409
fixtureCompare({
415410
mergeFixtures: 'test/fixtures/app/reset/my-app'
416411
});
@@ -430,11 +425,6 @@ describe(function() {
430425
to: '2.11.1'
431426
})).promise;
432427

433-
expect(path.join(tmpPath, 'config/ember-cli-update.json')).to.be.a.file()
434-
.and.equal('test/fixtures/ember-cli-update-json/default/config/ember-cli-update.json');
435-
436-
await fs.remove(path.join(tmpPath, 'config/ember-cli-update.json'));
437-
438428
fixtureCompare({
439429
mergeFixtures: 'test/fixtures/app/init/my-app'
440430
});
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
{
2+
"schemaVersion": 0,
3+
"packages": [
4+
{
5+
"name": "ember-cli",
6+
"version": "3.11.0-beta.1",
7+
"blueprints": [
8+
{
9+
"name": "addon",
10+
"codemodsSource": "ember-addon-codemods-manifest@1",
11+
"isBaseBlueprint": true,
12+
"options": [
13+
"--no-welcome"
14+
]
15+
}
16+
]
17+
}
18+
]
19+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
{
2+
"schemaVersion": 0,
3+
"packages": [
4+
{
5+
"name": "ember-cli",
6+
"version": "2.11.1",
7+
"blueprints": [
8+
{
9+
"name": "app",
10+
"codemodsSource": "ember-app-codemods-manifest@1",
11+
"isBaseBlueprint": true
12+
}
13+
]
14+
}
15+
]
16+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
{
2+
"schemaVersion": 0,
3+
"packages": [
4+
{
5+
"name": "ember-cli",
6+
"version": "3.11.0-beta.1",
7+
"blueprints": [
8+
{
9+
"name": "app",
10+
"codemodsSource": "ember-app-codemods-manifest@1",
11+
"isBaseBlueprint": true
12+
}
13+
]
14+
}
15+
]
16+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
{
2+
"schemaVersion": 0,
3+
"packages": [
4+
{
5+
"name": "ember-cli",
6+
"version": "2.11.1",
7+
"blueprints": [
8+
{
9+
"name": "app",
10+
"codemodsSource": "ember-app-codemods-manifest@1",
11+
"isBaseBlueprint": true
12+
}
13+
]
14+
}
15+
]
16+
}

0 commit comments

Comments
 (0)