@cyklang/cli 0.5.5 → 0.5.6
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/build/AssetCommand.js +6 -8
- package/build/InstallCommand.js +3 -5
- package/build/UninstallCommand.d.ts +2 -2
- package/build/UninstallCommand.js +53 -6
- package/build/index.js +1 -1
- package/package.json +1 -1
- package/src/AssetCommand.ts +6 -6
- package/src/InstallCommand.ts +3 -4
- package/src/UninstallCommand.ts +57 -6
- package/src/index.ts +1 -1
package/build/AssetCommand.js
CHANGED
|
@@ -354,11 +354,9 @@ function buildUploadList(dirName, dest, localList, remoteList) {
|
|
|
354
354
|
const route = dest + localDesc.path.substring(dirName.length);
|
|
355
355
|
const remoteDesc = remoteMap.get(route);
|
|
356
356
|
if (remoteDesc === undefined || remoteDesc.mtime.getTime() + 1000 < localDesc.mtime.getTime()) {
|
|
357
|
-
if (remoteDesc === undefined)
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
logger.debug('remoteDesc.mtime ' + remoteDesc.mtime.getTime(), 'localDesc.mtime ' + localDesc.mtime.getTime());
|
|
361
|
-
logger.info(localDesc.path);
|
|
357
|
+
// if (remoteDesc === undefined) logger.debug('remoteDesc undefined')
|
|
358
|
+
// else logger.debug('remoteDesc.mtime ' + remoteDesc.mtime.getTime(), 'localDesc.mtime ' + localDesc.mtime.getTime())
|
|
359
|
+
// logger.info(localDesc.path)
|
|
362
360
|
result.push(localDesc);
|
|
363
361
|
}
|
|
364
362
|
}
|
|
@@ -417,7 +415,7 @@ async function uploadFiles(dirName, uploadList, dest, dbManager, dbRemote, auth)
|
|
|
417
415
|
for (let ind = 0; ind < uploadList.length; ind++) {
|
|
418
416
|
const upload = uploadList[ind];
|
|
419
417
|
const route = dest + upload.path.substring(dirName.length);
|
|
420
|
-
logger.debug('upload ' + upload.path + ' to ' + route)
|
|
418
|
+
// logger.debug('upload ' + upload.path + ' to ' + route)
|
|
421
419
|
await uploadAsset(upload, route, dbManager, dbRemote, auth);
|
|
422
420
|
}
|
|
423
421
|
}
|
|
@@ -451,7 +449,7 @@ async function uploadAsset(upload, route, dbManager, dbRemote, auth) {
|
|
|
451
449
|
// logger.debug('dbAsset.content length ' + dbAsset.content.length)
|
|
452
450
|
if (dbAsset.id === undefined) {
|
|
453
451
|
dbAsset.id = await dbManager?.dbAssetInsert(dbAsset);
|
|
454
|
-
logger.info('inserted asset ' + dbAsset.
|
|
452
|
+
logger.info('inserted asset ' + dbAsset.route);
|
|
455
453
|
}
|
|
456
454
|
else {
|
|
457
455
|
await dbManager?.dbAssetUpdate(dbAsset);
|
|
@@ -486,7 +484,7 @@ function mimetypeLookup(filename) {
|
|
|
486
484
|
* @param dbRemote
|
|
487
485
|
*/
|
|
488
486
|
async function uploadAssetContent(dbAsset, fileName, dbRemote) {
|
|
489
|
-
logger.debug('uploadAssetContent file ' + fileName + ' to path ' +
|
|
487
|
+
// logger.debug('uploadAssetContent file ' + fileName + ' to path ' + path)
|
|
490
488
|
try {
|
|
491
489
|
const file = fs.createReadStream(fileName);
|
|
492
490
|
const form = new form_data_1.default();
|
package/build/InstallCommand.js
CHANGED
|
@@ -72,7 +72,7 @@ async function installPackage(node_package, dbManager, dbRemote) {
|
|
|
72
72
|
/**
|
|
73
73
|
* install the Node Package
|
|
74
74
|
*/
|
|
75
|
-
await installNodePackage(node_package, dbManager);
|
|
75
|
+
await installNodePackage(node_package, dbManager, dbRemote);
|
|
76
76
|
const installScript = await lookupInstallScript(node_package);
|
|
77
77
|
if (installScript) {
|
|
78
78
|
/**
|
|
@@ -117,8 +117,6 @@ async function uploadPackageAssets(node_package, dbManager, dbRemote) {
|
|
|
117
117
|
}
|
|
118
118
|
console.log();
|
|
119
119
|
console.log('upload assets to server ...');
|
|
120
|
-
if (!dbManager)
|
|
121
|
-
throw 'dbManager undefined';
|
|
122
120
|
const items = fs.readdirSync(assetFolder);
|
|
123
121
|
for (let ind = 0; ind < items.length; ind++) {
|
|
124
122
|
const item = items[ind];
|
|
@@ -168,7 +166,7 @@ async function uploadPackageModules(node_package, dbManager) {
|
|
|
168
166
|
* method installNodePackage
|
|
169
167
|
* @param node_package
|
|
170
168
|
*/
|
|
171
|
-
async function installNodePackage(node_package, dbManager) {
|
|
169
|
+
async function installNodePackage(node_package, dbManager, dbRemote) {
|
|
172
170
|
try {
|
|
173
171
|
const packageJson = await (0, Cmd_1.readPackageJson)();
|
|
174
172
|
if (packageJson.devDependencies && packageJson.devDependencies[node_package]
|
|
@@ -176,7 +174,7 @@ async function installNodePackage(node_package, dbManager) {
|
|
|
176
174
|
console.log(node_package + ' already installed. We uninstall it first');
|
|
177
175
|
if (!dbManager)
|
|
178
176
|
throw 'dbManager undefined';
|
|
179
|
-
await (0, UninstallCommand_1.uninstallPackage)(node_package, dbManager);
|
|
177
|
+
await (0, UninstallCommand_1.uninstallPackage)(node_package, dbManager, dbRemote);
|
|
180
178
|
}
|
|
181
179
|
await (0, Cmd_1.runShellCommand)('npm', ['install', '--save-dev', node_package]);
|
|
182
180
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Cmd } from "./Cmd";
|
|
2
|
-
import { DBManager } from "@cyklang/core";
|
|
2
|
+
import { DBManager, DBRemote } from "@cyklang/core";
|
|
3
3
|
export declare class UninstallCommand extends Cmd {
|
|
4
4
|
/**
|
|
5
5
|
* constructor
|
|
@@ -17,4 +17,4 @@ export declare class UninstallCommand extends Cmd {
|
|
|
17
17
|
* function uninstallPackage
|
|
18
18
|
* @param node_package
|
|
19
19
|
*/
|
|
20
|
-
export declare function uninstallPackage(node_package: string, dbManager: DBManager): Promise<void>;
|
|
20
|
+
export declare function uninstallPackage(node_package: string, dbManager: DBManager, dbRemote: DBRemote): Promise<void>;
|
|
@@ -56,9 +56,9 @@ class UninstallCommand extends Cmd_1.Cmd {
|
|
|
56
56
|
async uninstall(node_package, options) {
|
|
57
57
|
try {
|
|
58
58
|
await this.prologue(options);
|
|
59
|
-
if (this.dbManager
|
|
60
|
-
throw 'dbManager undefined';
|
|
61
|
-
await uninstallPackage(node_package, this.dbManager);
|
|
59
|
+
if (!this.dbManager || !this.dbRemote)
|
|
60
|
+
throw 'dbManager or dbRemote undefined';
|
|
61
|
+
await uninstallPackage(node_package, this.dbManager, this.dbRemote);
|
|
62
62
|
}
|
|
63
63
|
catch (err) {
|
|
64
64
|
logger.error(err);
|
|
@@ -70,7 +70,7 @@ exports.UninstallCommand = UninstallCommand;
|
|
|
70
70
|
* function uninstallPackage
|
|
71
71
|
* @param node_package
|
|
72
72
|
*/
|
|
73
|
-
async function uninstallPackage(node_package, dbManager) {
|
|
73
|
+
async function uninstallPackage(node_package, dbManager, dbRemote) {
|
|
74
74
|
const uninstallScript = await lookupUninstallScript(node_package);
|
|
75
75
|
if (uninstallScript) {
|
|
76
76
|
/**
|
|
@@ -83,7 +83,7 @@ async function uninstallPackage(node_package, dbManager) {
|
|
|
83
83
|
/**
|
|
84
84
|
* default uninstall :
|
|
85
85
|
*/
|
|
86
|
-
await defaultUninstallScript(node_package, dbManager);
|
|
86
|
+
await defaultUninstallScript(node_package, dbManager, dbRemote);
|
|
87
87
|
}
|
|
88
88
|
/**
|
|
89
89
|
* uninstall the node package
|
|
@@ -95,13 +95,60 @@ exports.uninstallPackage = uninstallPackage;
|
|
|
95
95
|
* method defaultUninstallScript
|
|
96
96
|
* @param node_package
|
|
97
97
|
*/
|
|
98
|
-
async function defaultUninstallScript(node_package, dbManager) {
|
|
98
|
+
async function defaultUninstallScript(node_package, dbManager, dbRemote) {
|
|
99
99
|
console.log();
|
|
100
100
|
console.log('Default uninstall script');
|
|
101
101
|
/**
|
|
102
102
|
* delete package modules from server
|
|
103
103
|
*/
|
|
104
104
|
await deletePackageModules(node_package, dbManager);
|
|
105
|
+
/**
|
|
106
|
+
* delete package assets from server
|
|
107
|
+
*/
|
|
108
|
+
await deletePackageAssets(node_package, dbManager, dbRemote);
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* function deletePackageAssets
|
|
112
|
+
* @param node_package
|
|
113
|
+
* @param dbManager
|
|
114
|
+
* @param dbRemote
|
|
115
|
+
*/
|
|
116
|
+
async function deletePackageAssets(node_package, dbManager, dbRemote) {
|
|
117
|
+
const assetFolder = path.join('node_modules', node_package, 'asset');
|
|
118
|
+
if (!fs.existsSync(assetFolder) || !fs.statSync(assetFolder).isDirectory()) {
|
|
119
|
+
return;
|
|
120
|
+
}
|
|
121
|
+
console.log();
|
|
122
|
+
console.log('delete assets from server ...');
|
|
123
|
+
await browseFolder(assetFolder, async (filePath) => {
|
|
124
|
+
const route = '/' + path.relative(assetFolder, filePath);
|
|
125
|
+
const dbAsset = await dbManager.dbAssetExist(route);
|
|
126
|
+
if (!dbAsset) {
|
|
127
|
+
logger.info('asset ' + route + ' not found');
|
|
128
|
+
return;
|
|
129
|
+
}
|
|
130
|
+
await dbManager.dbAssetDelete(dbAsset);
|
|
131
|
+
logger.info('asset ' + route + ' deleted');
|
|
132
|
+
});
|
|
133
|
+
console.log((0, kolorist_1.green)('*') + ' delete assets from server');
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* browseFolder
|
|
137
|
+
* @param folder
|
|
138
|
+
* @param treatment
|
|
139
|
+
*/
|
|
140
|
+
async function browseFolder(folder, treatment) {
|
|
141
|
+
const files = fs.readdirSync(folder);
|
|
142
|
+
for (let ind = 0; ind < files.length; ind++) {
|
|
143
|
+
const file = files[ind];
|
|
144
|
+
const pathName = folder + '/' + file;
|
|
145
|
+
if (fs.statSync(pathName).isDirectory()) {
|
|
146
|
+
await browseFolder(pathName, treatment);
|
|
147
|
+
}
|
|
148
|
+
else {
|
|
149
|
+
await treatment(pathName);
|
|
150
|
+
}
|
|
151
|
+
}
|
|
105
152
|
}
|
|
106
153
|
/**
|
|
107
154
|
* function deletePackageModules
|
package/build/index.js
CHANGED
|
@@ -20,7 +20,7 @@ const logger = loglevel_1.default.getLogger("index.ts");
|
|
|
20
20
|
logger.setLevel("debug");
|
|
21
21
|
const program = new commander_1.Command();
|
|
22
22
|
program.name('cyk').description('cyklang CLI')
|
|
23
|
-
.version('0.5.
|
|
23
|
+
.version('0.5.6');
|
|
24
24
|
program.addCommand(new InstallCommand_1.InstallCommand('install'));
|
|
25
25
|
program.addCommand(new InstallCommand_1.InstallCommand('i'));
|
|
26
26
|
program.addCommand(new UninstallCommand_1.UninstallCommand('uninstall'));
|
package/package.json
CHANGED
package/src/AssetCommand.ts
CHANGED
|
@@ -366,9 +366,9 @@ function buildUploadList(dirName: string, dest: string, localList: FileDescripto
|
|
|
366
366
|
const remoteDesc = remoteMap.get(route)
|
|
367
367
|
|
|
368
368
|
if (remoteDesc === undefined || remoteDesc.mtime.getTime() + 1000 < localDesc.mtime.getTime()) {
|
|
369
|
-
if (remoteDesc === undefined) logger.debug('remoteDesc undefined')
|
|
370
|
-
else logger.debug('remoteDesc.mtime ' + remoteDesc.mtime.getTime(), 'localDesc.mtime ' + localDesc.mtime.getTime())
|
|
371
|
-
logger.info(localDesc.path)
|
|
369
|
+
// if (remoteDesc === undefined) logger.debug('remoteDesc undefined')
|
|
370
|
+
// else logger.debug('remoteDesc.mtime ' + remoteDesc.mtime.getTime(), 'localDesc.mtime ' + localDesc.mtime.getTime())
|
|
371
|
+
// logger.info(localDesc.path)
|
|
372
372
|
result.push(localDesc)
|
|
373
373
|
}
|
|
374
374
|
}
|
|
@@ -426,7 +426,7 @@ async function uploadFiles(dirName: string, uploadList: FileDescriptor[], dest:
|
|
|
426
426
|
for (let ind = 0; ind < uploadList.length; ind++) {
|
|
427
427
|
const upload = uploadList[ind]
|
|
428
428
|
const route = dest + upload.path.substring(dirName.length)
|
|
429
|
-
logger.debug('upload ' + upload.path + ' to ' + route)
|
|
429
|
+
// logger.debug('upload ' + upload.path + ' to ' + route)
|
|
430
430
|
await uploadAsset(upload, route, dbManager, dbRemote, auth)
|
|
431
431
|
}
|
|
432
432
|
}
|
|
@@ -463,7 +463,7 @@ export async function uploadAsset(upload: FileDescriptor, route: string, dbManag
|
|
|
463
463
|
|
|
464
464
|
if (dbAsset.id === undefined) {
|
|
465
465
|
dbAsset.id = await dbManager?.dbAssetInsert(dbAsset)
|
|
466
|
-
logger.info('inserted asset ' + dbAsset.
|
|
466
|
+
logger.info('inserted asset ' + dbAsset.route)
|
|
467
467
|
}
|
|
468
468
|
else {
|
|
469
469
|
await dbManager?.dbAssetUpdate(dbAsset)
|
|
@@ -500,7 +500,7 @@ function mimetypeLookup(filename: string): string | false {
|
|
|
500
500
|
* @param dbRemote
|
|
501
501
|
*/
|
|
502
502
|
async function uploadAssetContent(dbAsset: DBAsset, fileName: string, dbRemote: DBRemote | undefined) {
|
|
503
|
-
logger.debug('uploadAssetContent file ' + fileName + ' to path ' + path)
|
|
503
|
+
// logger.debug('uploadAssetContent file ' + fileName + ' to path ' + path)
|
|
504
504
|
try {
|
|
505
505
|
const file = fs.createReadStream(fileName)
|
|
506
506
|
const form = new FormData()
|
package/src/InstallCommand.ts
CHANGED
|
@@ -48,7 +48,7 @@ export async function installPackage(node_package: string, dbManager: DBManager,
|
|
|
48
48
|
/**
|
|
49
49
|
* install the Node Package
|
|
50
50
|
*/
|
|
51
|
-
await installNodePackage(node_package, dbManager)
|
|
51
|
+
await installNodePackage(node_package, dbManager, dbRemote)
|
|
52
52
|
|
|
53
53
|
const installScript = await lookupInstallScript(node_package)
|
|
54
54
|
|
|
@@ -100,7 +100,6 @@ async function uploadPackageAssets(node_package: string, dbManager: DBManager, d
|
|
|
100
100
|
console.log()
|
|
101
101
|
console.log('upload assets to server ...')
|
|
102
102
|
|
|
103
|
-
if (!dbManager) throw 'dbManager undefined'
|
|
104
103
|
const items = fs.readdirSync(assetFolder)
|
|
105
104
|
for (let ind = 0; ind < items.length; ind++) {
|
|
106
105
|
const item = items[ind]
|
|
@@ -153,7 +152,7 @@ async function uploadPackageModules(node_package: string, dbManager: DBManager)
|
|
|
153
152
|
* method installNodePackage
|
|
154
153
|
* @param node_package
|
|
155
154
|
*/
|
|
156
|
-
async function installNodePackage(node_package: string, dbManager: DBManager) {
|
|
155
|
+
async function installNodePackage(node_package: string, dbManager: DBManager, dbRemote: DBRemote) {
|
|
157
156
|
|
|
158
157
|
try {
|
|
159
158
|
const packageJson = await readPackageJson()
|
|
@@ -161,7 +160,7 @@ async function installNodePackage(node_package: string, dbManager: DBManager) {
|
|
|
161
160
|
|| packageJson.dependencies && packageJson.dependencies[node_package]) {
|
|
162
161
|
console.log(node_package + ' already installed. We uninstall it first')
|
|
163
162
|
if (!dbManager) throw 'dbManager undefined'
|
|
164
|
-
await uninstallPackage(node_package, dbManager)
|
|
163
|
+
await uninstallPackage(node_package, dbManager, dbRemote)
|
|
165
164
|
}
|
|
166
165
|
|
|
167
166
|
await runShellCommand('npm', ['install', '--save-dev', node_package])
|
package/src/UninstallCommand.ts
CHANGED
|
@@ -5,7 +5,7 @@ import { green, red, bold } from 'kolorist'
|
|
|
5
5
|
|
|
6
6
|
import loglevel from 'loglevel'
|
|
7
7
|
import { deleteModule } from "./ModuleCommand";
|
|
8
|
-
import { DBManager } from "@cyklang/core";
|
|
8
|
+
import { DBManager, DBRemote } from "@cyklang/core";
|
|
9
9
|
const logger = loglevel.getLogger('UninstallCommand.ts')
|
|
10
10
|
logger.setLevel('debug')
|
|
11
11
|
|
|
@@ -31,9 +31,9 @@ export class UninstallCommand extends Cmd {
|
|
|
31
31
|
async uninstall(node_package: string, options: any) {
|
|
32
32
|
try {
|
|
33
33
|
await this.prologue(options)
|
|
34
|
-
if (this.dbManager
|
|
34
|
+
if (! this.dbManager || ! this.dbRemote) throw 'dbManager or dbRemote undefined'
|
|
35
35
|
|
|
36
|
-
await uninstallPackage(node_package, this.dbManager)
|
|
36
|
+
await uninstallPackage(node_package, this.dbManager, this.dbRemote)
|
|
37
37
|
}
|
|
38
38
|
catch (err) {
|
|
39
39
|
logger.error(err)
|
|
@@ -45,7 +45,7 @@ export class UninstallCommand extends Cmd {
|
|
|
45
45
|
* function uninstallPackage
|
|
46
46
|
* @param node_package
|
|
47
47
|
*/
|
|
48
|
-
export async function uninstallPackage(node_package: string, dbManager: DBManager) {
|
|
48
|
+
export async function uninstallPackage(node_package: string, dbManager: DBManager, dbRemote: DBRemote) {
|
|
49
49
|
|
|
50
50
|
const uninstallScript = await lookupUninstallScript(node_package)
|
|
51
51
|
if (uninstallScript) {
|
|
@@ -59,7 +59,7 @@ export async function uninstallPackage(node_package: string, dbManager: DBManage
|
|
|
59
59
|
/**
|
|
60
60
|
* default uninstall :
|
|
61
61
|
*/
|
|
62
|
-
await defaultUninstallScript(node_package, dbManager)
|
|
62
|
+
await defaultUninstallScript(node_package, dbManager, dbRemote)
|
|
63
63
|
}
|
|
64
64
|
|
|
65
65
|
/**
|
|
@@ -72,14 +72,65 @@ export async function uninstallPackage(node_package: string, dbManager: DBManage
|
|
|
72
72
|
* method defaultUninstallScript
|
|
73
73
|
* @param node_package
|
|
74
74
|
*/
|
|
75
|
-
async function defaultUninstallScript(node_package: string, dbManager: DBManager) {
|
|
75
|
+
async function defaultUninstallScript(node_package: string, dbManager: DBManager, dbRemote: DBRemote) {
|
|
76
76
|
console.log()
|
|
77
77
|
console.log('Default uninstall script')
|
|
78
78
|
/**
|
|
79
79
|
* delete package modules from server
|
|
80
80
|
*/
|
|
81
81
|
await deletePackageModules(node_package, dbManager)
|
|
82
|
+
/**
|
|
83
|
+
* delete package assets from server
|
|
84
|
+
*/
|
|
85
|
+
await deletePackageAssets(node_package, dbManager, dbRemote)
|
|
86
|
+
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* function deletePackageAssets
|
|
91
|
+
* @param node_package
|
|
92
|
+
* @param dbManager
|
|
93
|
+
* @param dbRemote
|
|
94
|
+
*/
|
|
95
|
+
async function deletePackageAssets(node_package: string, dbManager: DBManager, dbRemote: DBRemote) {
|
|
96
|
+
const assetFolder = path.join('node_modules', node_package, 'asset')
|
|
97
|
+
if (!fs.existsSync(assetFolder) || !fs.statSync(assetFolder).isDirectory()) {
|
|
98
|
+
return
|
|
99
|
+
}
|
|
100
|
+
console.log()
|
|
101
|
+
console.log('delete assets from server ...')
|
|
102
|
+
|
|
103
|
+
await browseFolder(assetFolder, async (filePath: string) => {
|
|
104
|
+
const route = '/' + path.relative(assetFolder, filePath)
|
|
105
|
+
const dbAsset = await dbManager.dbAssetExist(route)
|
|
106
|
+
if (!dbAsset) {
|
|
107
|
+
logger.info('asset ' + route + ' not found')
|
|
108
|
+
return
|
|
109
|
+
}
|
|
110
|
+
await dbManager.dbAssetDelete(dbAsset)
|
|
111
|
+
logger.info('asset ' + route + ' deleted')
|
|
112
|
+
})
|
|
82
113
|
|
|
114
|
+
console.log(green('*') + ' delete assets from server')
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
/**
|
|
118
|
+
* browseFolder
|
|
119
|
+
* @param folder
|
|
120
|
+
* @param treatment
|
|
121
|
+
*/
|
|
122
|
+
async function browseFolder(folder: string, treatment: (filePath: string) => Promise<void>) {
|
|
123
|
+
const files = fs.readdirSync(folder)
|
|
124
|
+
for(let ind = 0; ind < files.length; ind++) {
|
|
125
|
+
const file = files[ind]
|
|
126
|
+
const pathName = folder + '/' + file
|
|
127
|
+
if (fs.statSync(pathName).isDirectory()) {
|
|
128
|
+
await browseFolder(pathName, treatment)
|
|
129
|
+
}
|
|
130
|
+
else {
|
|
131
|
+
await treatment(pathName)
|
|
132
|
+
}
|
|
133
|
+
}
|
|
83
134
|
}
|
|
84
135
|
|
|
85
136
|
/**
|
package/src/index.ts
CHANGED