@verdnatura/myt 1.5.25 → 1.5.27
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/myt-clean.js +40 -15
- package/myt-push.js +9 -3
- package/package.json +1 -1
package/myt-clean.js
CHANGED
|
@@ -28,13 +28,13 @@ class Clean extends Command {
|
|
|
28
28
|
|
|
29
29
|
async run(myt, opts) {
|
|
30
30
|
const conn = await myt.dbConnect();
|
|
31
|
-
const versionDirs = await fs.readdir(opts.versionsDir);
|
|
32
31
|
const archiveDir = path.join(opts.versionsDir, '.archive');
|
|
33
32
|
|
|
34
33
|
const dbVersion = await myt.fetchDbVersion() || {};
|
|
35
34
|
const number = parseInt(dbVersion.number);
|
|
36
35
|
|
|
37
36
|
const oldVersions = [];
|
|
37
|
+
const versionDirs = await fs.readdir(opts.versionsDir);
|
|
38
38
|
for (const versionDir of versionDirs) {
|
|
39
39
|
const version = await myt.loadVersion(versionDir);
|
|
40
40
|
const shouldArchive = version
|
|
@@ -52,15 +52,28 @@ class Clean extends Command {
|
|
|
52
52
|
if (!await fs.pathExists(archiveDir))
|
|
53
53
|
await fs.mkdir(archiveDir);
|
|
54
54
|
|
|
55
|
-
for (const oldVersion of oldVersions)
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
)
|
|
55
|
+
for (const oldVersion of oldVersions) {
|
|
56
|
+
const srcDir = path.join(opts.versionsDir, oldVersion);
|
|
57
|
+
const dstDir = path.join(archiveDir, oldVersion);
|
|
58
|
+
|
|
59
|
+
if (!await fs.pathExists(dstDir))
|
|
60
|
+
await fs.mkdir(dstDir);
|
|
61
|
+
|
|
62
|
+
const scripts = await fs.readdir(srcDir);
|
|
63
|
+
for (const script of scripts) {
|
|
64
|
+
await fs.move(
|
|
65
|
+
path.join(srcDir, script),
|
|
66
|
+
path.join(dstDir, script),
|
|
67
|
+
{overwrite: true}
|
|
68
|
+
);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
await fs.rmdir(srcDir);
|
|
72
|
+
}
|
|
60
73
|
|
|
61
|
-
console.log(`
|
|
74
|
+
console.log(` -> ${oldVersions.length} versions archived.`);
|
|
62
75
|
} else
|
|
63
|
-
console.log(`No versions
|
|
76
|
+
console.log(` -> No versions archived.`);
|
|
64
77
|
|
|
65
78
|
if (opts.purge) {
|
|
66
79
|
const versionDb = new VersionDb(myt, opts.versionsDir);
|
|
@@ -76,6 +89,7 @@ class Clean extends Command {
|
|
|
76
89
|
[opts.code]
|
|
77
90
|
);
|
|
78
91
|
|
|
92
|
+
let nPurged = 0;
|
|
79
93
|
for (const script of res) {
|
|
80
94
|
const hasVersion = await versionDb.hasScript(script);
|
|
81
95
|
const hasArchive = await archiveDb.hasScript(script);
|
|
@@ -86,8 +100,14 @@ class Clean extends Command {
|
|
|
86
100
|
WHERE code = ? AND number = ? AND file = ?`,
|
|
87
101
|
[opts.code, script.number, script.file]
|
|
88
102
|
);
|
|
103
|
+
nPurged++;
|
|
89
104
|
}
|
|
90
105
|
}
|
|
106
|
+
|
|
107
|
+
if (nPurged)
|
|
108
|
+
console.log(` -> ${nPurged} versions purged from log.`);
|
|
109
|
+
else
|
|
110
|
+
console.log(` -> No versions purged from log.`);
|
|
91
111
|
}
|
|
92
112
|
}
|
|
93
113
|
}
|
|
@@ -98,23 +118,28 @@ class VersionDb {
|
|
|
98
118
|
}
|
|
99
119
|
|
|
100
120
|
async load() {
|
|
101
|
-
const
|
|
121
|
+
const map = this.map = new Map();
|
|
102
122
|
if (await fs.pathExists(this.baseDir)) {
|
|
103
123
|
const dirs = await fs.readdir(this.baseDir);
|
|
104
124
|
for (const dir of dirs) {
|
|
105
125
|
const version = this.myt.parseVersionDir(dir);
|
|
106
126
|
if (!version) continue;
|
|
107
|
-
|
|
127
|
+
let subdirs = map.get(version.number);
|
|
128
|
+
if (!subdirs) map.set(version.number, subdirs = []);
|
|
129
|
+
subdirs.push(dir);
|
|
108
130
|
}
|
|
109
131
|
}
|
|
110
|
-
return
|
|
132
|
+
return map;
|
|
111
133
|
}
|
|
112
134
|
|
|
113
135
|
async hasScript(script) {
|
|
114
|
-
const
|
|
115
|
-
if (
|
|
116
|
-
|
|
117
|
-
|
|
136
|
+
const dirs = this.map.get(script.number);
|
|
137
|
+
if (dirs)
|
|
138
|
+
for (const dir of dirs) {
|
|
139
|
+
const scriptPath = path.join(this.baseDir, dir, script.file);
|
|
140
|
+
if (await fs.pathExists(scriptPath)) return true;
|
|
141
|
+
}
|
|
142
|
+
return false;
|
|
118
143
|
}
|
|
119
144
|
}
|
|
120
145
|
|
package/myt-push.js
CHANGED
|
@@ -138,6 +138,7 @@ class Push extends Command {
|
|
|
138
138
|
|
|
139
139
|
console.log('Applying versions.');
|
|
140
140
|
|
|
141
|
+
let nVersions = 0;
|
|
141
142
|
let nChanges = 0;
|
|
142
143
|
let silent = true;
|
|
143
144
|
const versionsDir = opts.versionsDir;
|
|
@@ -191,7 +192,6 @@ class Push extends Command {
|
|
|
191
192
|
|
|
192
193
|
const action = apply ? 'apply' : 'ignore';
|
|
193
194
|
logVersion(`[${version.number}]`.cyan, version.name, action);
|
|
194
|
-
|
|
195
195
|
if (!apply) continue;
|
|
196
196
|
|
|
197
197
|
for (const script of version.scripts) {
|
|
@@ -243,9 +243,15 @@ class Push extends Command {
|
|
|
243
243
|
}
|
|
244
244
|
|
|
245
245
|
await this.updateVersion('number', version.number);
|
|
246
|
+
nVersions++;
|
|
246
247
|
}
|
|
247
248
|
}
|
|
248
249
|
|
|
250
|
+
if (nVersions) {
|
|
251
|
+
console.log(` -> ${nVersions} versions with ${nChanges} changes applied.`);
|
|
252
|
+
} else
|
|
253
|
+
console.log(` -> No versions applied.`);
|
|
254
|
+
|
|
249
255
|
// Apply routines
|
|
250
256
|
|
|
251
257
|
console.log('Applying changed routines.');
|
|
@@ -381,8 +387,8 @@ class Push extends Command {
|
|
|
381
387
|
|
|
382
388
|
await finalize();
|
|
383
389
|
|
|
384
|
-
if (nRoutines
|
|
385
|
-
console.log(` -> ${nRoutines} routines
|
|
390
|
+
if (nRoutines) {
|
|
391
|
+
console.log(` -> ${nRoutines} routines changed.`);
|
|
386
392
|
} else
|
|
387
393
|
console.log(` -> No routines changed.`);
|
|
388
394
|
|