Skip to content

Commit 91ddc22

Browse files
authored
Add visual info when using cleanup script (#3)
1 parent 264bc1a commit 91ddc22

File tree

3 files changed

+186
-46
lines changed

3 files changed

+186
-46
lines changed

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@
5050
"eslint": "^3.17.1",
5151
"factory-girl": "^4.0.0",
5252
"istanbul": "^0.4.5",
53+
"listr": "^0.11.0",
5354
"mocha": "^3.2.0",
5455
"nodemon": "^1.11.0",
5556
"replace-in-file": "^2.5.0",

scripts/cleanup.js

Lines changed: 60 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -1,53 +1,71 @@
11
const path = require('path');
2-
const replace = require('replace-in-file').sync;
3-
const remove = require('del').sync;
2+
const replace = require('replace-in-file');
3+
const remove = require('del');
4+
const Listr = require('listr');
45

56
const srcPath = path.join(__dirname, '..', 'src');
67
const testPath = path.join(__dirname, '..', 'test');
78
const srcAndTestPath = `{${testPath},${srcPath}}`;
89
const routerPath = path.join(srcPath, 'interfaces', 'http', 'router.js');
910
const containerPath = path.join(srcPath, 'container.js');
1011

11-
// Remove the references of the files that will be removed
12-
13-
replace({
14-
files: routerPath,
15-
from: /\s*apiRouter.*UsersController'\)\);/,
16-
to: ''
17-
});
18-
19-
replace({
20-
files: containerPath,
21-
from: [
22-
/\s*const.*app\/user'\);/,
23-
/\s*const.*UsersRepository'\);/,
24-
/\, User: UserModel/,
25-
/\s*usersRepository.*\}\]/,
26-
/\,\s*UserModel/,
27-
/createUser.*\n/,
28-
/\s*getAllUsers.*GetAllUsers/,
29-
],
30-
to: ''
31-
});
32-
33-
// Remove example app files
34-
35-
remove([
36-
path.join(srcAndTestPath, 'app', 'user', '**'),
37-
path.join(srcAndTestPath, 'domain', 'user', '**'),
38-
path.join(srcAndTestPath, 'infra', 'user', '**'),
39-
path.join(srcPath, 'infra', 'database', 'migrate', '*.js'),
40-
path.join(srcPath, 'infra', 'database', 'seeds', '*.js'),
41-
path.join(srcPath, 'infra', 'database', 'models', 'User.js'),
42-
path.join(srcPath, 'interfaces', 'http', 'user', '**'),
43-
path.join(testPath, 'api', 'users', '**'),
44-
path.join(testPath, 'support', 'factories', '*.js')
12+
const tasks = new Listr([
13+
{
14+
title: 'Remove UsersController routes',
15+
task() {
16+
return replace({
17+
files: routerPath,
18+
from: /\s*apiRouter.*UsersController'\)\);/,
19+
to: ''
20+
});
21+
}
22+
},
23+
{
24+
title: 'Remove example files from DI container',
25+
task() {
26+
return replace({
27+
files: containerPath,
28+
from: [
29+
/\s*const.*app\/user'\);/,
30+
/\s*const.*UsersRepository'\);/,
31+
/\, User: UserModel/,
32+
/\s*usersRepository.*\}\]/,
33+
/\,\s*UserModel/,
34+
/createUser.*\n/,
35+
/\s*getAllUsers.*GetAllUsers/,
36+
],
37+
to: ''
38+
});
39+
}
40+
},
41+
{
42+
title: 'Delete example files and tests',
43+
task() {
44+
return remove([
45+
path.join(srcAndTestPath, 'app', 'user', '**'),
46+
path.join(srcAndTestPath, 'domain', 'user', '**'),
47+
path.join(srcAndTestPath, 'infra', 'user', '**'),
48+
path.join(srcPath, 'infra', 'database', 'migrate', '*.js'),
49+
path.join(srcPath, 'infra', 'database', 'seeds', '*.js'),
50+
path.join(srcPath, 'infra', 'database', 'models', 'User.js'),
51+
path.join(srcPath, 'interfaces', 'http', 'user', '**'),
52+
path.join(testPath, 'api', 'users', '**'),
53+
path.join(testPath, 'support', 'factories', '*.js')
54+
]);
55+
}
56+
},
57+
{
58+
title: 'Remove cleanup script from package.json',
59+
task() {
60+
return replace({
61+
files: path.join(__dirname, '..', 'package.json'),
62+
from: /\,\s*\"cleanup.*cleanup\.js\"/,
63+
to: ''
64+
});
65+
}
66+
}
4567
]);
4668

47-
// Remove `cleanup` command from package.json
48-
49-
replace({
50-
files: path.join(__dirname, '..', 'package.json'),
51-
from: /\,\s*\"cleanup.*cleanup\.js\"/,
52-
to: ''
69+
tasks.run().catch((err) => {
70+
console.error(err);
5371
});

yarn.lock

Lines changed: 125 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ amp@0.3.1, amp@~0.3.1:
6464
version "0.3.1"
6565
resolved "https://registry.yarnpkg.com/amp/-/amp-0.3.1.tgz#6adf8d58a74f361e82c1fa8d389c079e139fc47d"
6666

67-
ansi-escapes@^1.1.0:
67+
ansi-escapes@^1.0.0, ansi-escapes@^1.1.0:
6868
version "1.4.0"
6969
resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e"
7070

@@ -436,18 +436,29 @@ cli-color@~0.3.2:
436436
memoizee "~0.3.8"
437437
timers-ext "0.1"
438438

439-
cli-cursor@^1.0.1:
439+
cli-cursor@^1.0.1, cli-cursor@^1.0.2:
440440
version "1.0.2"
441441
resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-1.0.2.tgz#64da3f7d56a54412e59794bd62dc35295e8f2987"
442442
dependencies:
443443
restore-cursor "^1.0.1"
444444

445+
cli-spinners@^0.1.2:
446+
version "0.1.2"
447+
resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-0.1.2.tgz#bb764d88e185fb9e1e6a2a1f19772318f605e31c"
448+
445449
cli-table@0.3.1:
446450
version "0.3.1"
447451
resolved "https://registry.yarnpkg.com/cli-table/-/cli-table-0.3.1.tgz#f53b05266a8b1a0b934b3d0821e6e2dc5914ae23"
448452
dependencies:
449453
colors "1.0.3"
450454

455+
cli-truncate@^0.2.1:
456+
version "0.2.1"
457+
resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-0.2.1.tgz#9f15cfbb0705005369216c626ac7d05ab90dd574"
458+
dependencies:
459+
slice-ansi "0.0.4"
460+
string-width "^1.0.1"
461+
451462
cli-width@^2.0.0:
452463
version "2.1.0"
453464
resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.1.0.tgz#b234ca209b29ef66fc518d9b98d5847b00edf00a"
@@ -653,6 +664,10 @@ dashdash@^1.12.0:
653664
dependencies:
654665
assert-plus "^1.0.0"
655666

667+
date-fns@^1.27.2:
668+
version "1.28.2"
669+
resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-1.28.2.tgz#19e4192d68875c0bf7c9537e3f296a8ec64853ef"
670+
656671
date-format@^0.0.0:
657672
version "0.0.0"
658673
resolved "https://registry.yarnpkg.com/date-format/-/date-format-0.0.0.tgz#09206863ab070eb459acea5542cbd856b11966b3"
@@ -806,6 +821,10 @@ ee-first@1.1.1:
806821
version "1.1.1"
807822
resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
808823

824+
elegant-spinner@^1.0.1:
825+
version "1.0.1"
826+
resolved "https://registry.yarnpkg.com/elegant-spinner/-/elegant-spinner-1.0.1.tgz#db043521c95d7e303fd8f345bedc3349cfb0729e"
827+
809828
emitter-listener@^1.0.1:
810829
version "1.0.1"
811830
resolved "https://registry.yarnpkg.com/emitter-listener/-/emitter-listener-1.0.1.tgz#b2499ea6e58230a52c268d5df261eecd9f10fe97"
@@ -1196,7 +1215,7 @@ fclone@1.0.8:
11961215
version "1.0.8"
11971216
resolved "https://registry.yarnpkg.com/fclone/-/fclone-1.0.8.tgz#a0d4a73d983249978c0e0671a161520b996467eb"
11981217

1199-
figures@^1.3.5:
1218+
figures@^1.3.5, figures@^1.7.0:
12001219
version "1.7.0"
12011220
resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e"
12021221
dependencies:
@@ -1746,6 +1765,16 @@ imurmurhash@^0.1.4:
17461765
version "0.1.4"
17471766
resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
17481767

1768+
indent-string@^2.1.0:
1769+
version "2.1.0"
1770+
resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80"
1771+
dependencies:
1772+
repeating "^2.0.0"
1773+
1774+
indent-string@^3.0.0:
1775+
version "3.1.0"
1776+
resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-3.1.0.tgz#08ff4334603388399b329e6b9538dc7a3cf5de7d"
1777+
17491778
indexof@0.0.1:
17501779
version "0.0.1"
17511780
resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d"
@@ -1927,6 +1956,10 @@ is-primitive@^2.0.0:
19271956
version "2.0.0"
19281957
resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575"
19291958

1959+
is-promise@^2.1.0:
1960+
version "2.1.0"
1961+
resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa"
1962+
19301963
is-property@^1.0.0:
19311964
version "1.0.2"
19321965
resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84"
@@ -1947,7 +1980,7 @@ is-resolvable@^1.0.0:
19471980
dependencies:
19481981
tryit "^1.0.1"
19491982

1950-
is-stream@^1.0.0:
1983+
is-stream@^1.0.0, is-stream@^1.1.0:
19511984
version "1.1.0"
19521985
resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
19531986

@@ -2162,6 +2195,52 @@ liftoff@^2.1.0:
21622195
rechoir "^0.6.2"
21632196
resolve "^1.1.7"
21642197

2198+
listr-silent-renderer@^1.1.1:
2199+
version "1.1.1"
2200+
resolved "https://registry.yarnpkg.com/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz#924b5a3757153770bf1a8e3fbf74b8bbf3f9242e"
2201+
2202+
listr-update-renderer@^0.2.0:
2203+
version "0.2.0"
2204+
resolved "https://registry.yarnpkg.com/listr-update-renderer/-/listr-update-renderer-0.2.0.tgz#ca80e1779b4e70266807e8eed1ad6abe398550f9"
2205+
dependencies:
2206+
chalk "^1.1.3"
2207+
cli-truncate "^0.2.1"
2208+
elegant-spinner "^1.0.1"
2209+
figures "^1.7.0"
2210+
indent-string "^3.0.0"
2211+
log-symbols "^1.0.2"
2212+
log-update "^1.0.2"
2213+
strip-ansi "^3.0.1"
2214+
2215+
listr-verbose-renderer@^0.4.0:
2216+
version "0.4.0"
2217+
resolved "https://registry.yarnpkg.com/listr-verbose-renderer/-/listr-verbose-renderer-0.4.0.tgz#44dc01bb0c34a03c572154d4d08cde9b1dc5620f"
2218+
dependencies:
2219+
chalk "^1.1.3"
2220+
cli-cursor "^1.0.2"
2221+
date-fns "^1.27.2"
2222+
figures "^1.7.0"
2223+
2224+
listr@^0.11.0:
2225+
version "0.11.0"
2226+
resolved "https://registry.yarnpkg.com/listr/-/listr-0.11.0.tgz#5e778bc23806ac3ab984ed75564458151f39b03e"
2227+
dependencies:
2228+
chalk "^1.1.3"
2229+
cli-truncate "^0.2.1"
2230+
figures "^1.7.0"
2231+
indent-string "^2.1.0"
2232+
is-promise "^2.1.0"
2233+
is-stream "^1.1.0"
2234+
listr-silent-renderer "^1.1.1"
2235+
listr-update-renderer "^0.2.0"
2236+
listr-verbose-renderer "^0.4.0"
2237+
log-symbols "^1.0.2"
2238+
log-update "^1.0.2"
2239+
ora "^0.2.3"
2240+
rxjs "^5.0.0-beta.11"
2241+
stream-to-observable "^0.1.0"
2242+
strip-ansi "^3.0.1"
2243+
21652244
load-json-file@^1.0.0:
21662245
version "1.1.0"
21672246
resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0"
@@ -2345,6 +2424,19 @@ lodash@~1.0.1:
23452424
version "1.0.2"
23462425
resolved "https://registry.yarnpkg.com/lodash/-/lodash-1.0.2.tgz#8f57560c83b59fc270bd3d561b690043430e2551"
23472426

2427+
log-symbols@^1.0.2:
2428+
version "1.0.2"
2429+
resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-1.0.2.tgz#376ff7b58ea3086a0f09facc74617eca501e1a18"
2430+
dependencies:
2431+
chalk "^1.0.0"
2432+
2433+
log-update@^1.0.2:
2434+
version "1.0.2"
2435+
resolved "https://registry.yarnpkg.com/log-update/-/log-update-1.0.2.tgz#19929f64c4093d2d2e7075a1dad8af59c296b8d1"
2436+
dependencies:
2437+
ansi-escapes "^1.0.0"
2438+
cli-cursor "^1.0.2"
2439+
23482440
log4js@^1.1.1:
23492441
version "1.1.1"
23502442
resolved "https://registry.yarnpkg.com/log4js/-/log4js-1.1.1.tgz#c21d29c7604089e4f255833e7f94b3461de1ff43"
@@ -2719,6 +2811,15 @@ options@>=0.0.5:
27192811
version "0.0.6"
27202812
resolved "https://registry.yarnpkg.com/options/-/options-0.0.6.tgz#ec22d312806bb53e731773e7cdaefcf1c643128f"
27212813

2814+
ora@^0.2.3:
2815+
version "0.2.3"
2816+
resolved "https://registry.yarnpkg.com/ora/-/ora-0.2.3.tgz#37527d220adcd53c39b73571d754156d5db657a4"
2817+
dependencies:
2818+
chalk "^1.1.1"
2819+
cli-cursor "^1.0.2"
2820+
cli-spinners "^0.1.2"
2821+
object-assign "^4.0.1"
2822+
27222823
orchestrator@^0.3.0:
27232824
version "0.3.8"
27242825
resolved "https://registry.yarnpkg.com/orchestrator/-/orchestrator-0.3.8.tgz#14e7e9e2764f7315fbac184e506c7aa6df94ad7e"
@@ -3217,6 +3318,12 @@ repeating@^1.1.2:
32173318
dependencies:
32183319
is-finite "^1.0.0"
32193320

3321+
repeating@^2.0.0:
3322+
version "2.0.1"
3323+
resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda"
3324+
dependencies:
3325+
is-finite "^1.0.0"
3326+
32203327
replace-ext@0.0.1:
32213328
version "0.0.1"
32223329
resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-0.0.1.tgz#29bbd92078a739f0bcce2b4ee41e837953522924"
@@ -3328,6 +3435,12 @@ rx-lite@^3.1.2:
33283435
version "3.1.2"
33293436
resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-3.1.2.tgz#19ce502ca572665f3b647b10939f97fd1615f102"
33303437

3438+
rxjs@^5.0.0-beta.11:
3439+
version "5.3.0"
3440+
resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-5.3.0.tgz#d88ccbdd46af290cbdb97d5d8055e52453fabe2d"
3441+
dependencies:
3442+
symbol-observable "^1.0.1"
3443+
33313444
semver-diff@^2.0.0:
33323445
version "2.1.0"
33333446
resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-2.1.0.tgz#4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36"
@@ -3604,6 +3717,10 @@ stream-shift@^1.0.0:
36043717
version "1.0.0"
36053718
resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952"
36063719

3720+
stream-to-observable@^0.1.0:
3721+
version "0.1.0"
3722+
resolved "https://registry.yarnpkg.com/stream-to-observable/-/stream-to-observable-0.1.0.tgz#45bf1d9f2d7dc09bed81f1c307c430e68b84cffe"
3723+
36073724
streamroller@^0.4.0:
36083725
version "0.4.0"
36093726
resolved "https://registry.yarnpkg.com/streamroller/-/streamroller-0.4.0.tgz#a273f1f91994549a2ddd112ccaa2d1dd23cb758c"
@@ -3715,6 +3832,10 @@ supports-color@^2.0.0:
37153832
version "2.0.0"
37163833
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7"
37173834

3835+
symbol-observable@^1.0.1:
3836+
version "1.0.4"
3837+
resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.0.4.tgz#29bf615d4aa7121bdd898b22d4b3f9bc4e2aa03d"
3838+
37183839
table@^3.7.8:
37193840
version "3.8.3"
37203841
resolved "https://registry.yarnpkg.com/table/-/table-3.8.3.tgz#2bbc542f0fda9861a755d3947fefd8b3f513855f"

0 commit comments

Comments
 (0)