@makano/rew 1.2.0 → 1.2.2
Sign up to get free protection for your applications and to get access to all the features.
- package/lib/rew/cli/cli.js +23 -1
- package/lib/rew/cli/utils.js +26 -3
- package/package.json +1 -1
package/lib/rew/cli/cli.js
CHANGED
@@ -227,7 +227,7 @@ yargs(hideBin(process.argv))
|
|
227
227
|
'Install an app',
|
228
228
|
(yargs) => {
|
229
229
|
yargs.positional('path', {
|
230
|
-
describe: 'Path of the app to install',
|
230
|
+
describe: 'Path or github or repo id of the app to install',
|
231
231
|
type: 'string',
|
232
232
|
});
|
233
233
|
},
|
@@ -235,6 +235,23 @@ yargs(hideBin(process.argv))
|
|
235
235
|
utils.installAppFrom(argv.path);
|
236
236
|
},
|
237
237
|
)
|
238
|
+
.command(
|
239
|
+
'uninstall <package>',
|
240
|
+
'Unnstall an app',
|
241
|
+
(yargs) => {
|
242
|
+
yargs.positional('package', {
|
243
|
+
describe: 'Package of the app to uninstall',
|
244
|
+
type: 'string',
|
245
|
+
}).option('all', {
|
246
|
+
alias: 'a',
|
247
|
+
describe: 'Remove the configs as well',
|
248
|
+
type: 'boolean',
|
249
|
+
});
|
250
|
+
},
|
251
|
+
async (argv) => {
|
252
|
+
utils.uninstall(argv.package, argv.all);
|
253
|
+
},
|
254
|
+
)
|
238
255
|
.command(
|
239
256
|
'version',
|
240
257
|
'Rew Version',
|
@@ -294,6 +311,11 @@ yargs(hideBin(process.argv))
|
|
294
311
|
describe: 'Translate to js',
|
295
312
|
type: 'boolean',
|
296
313
|
})
|
314
|
+
.option('single', {
|
315
|
+
alias: 's',
|
316
|
+
describe: 'Build single file(don\'t build imports)',
|
317
|
+
type: 'boolean',
|
318
|
+
})
|
297
319
|
.option('remove', {
|
298
320
|
alias: 'r',
|
299
321
|
describe: 'Remove all coffee',
|
package/lib/rew/cli/utils.js
CHANGED
@@ -11,6 +11,7 @@ const { compile } = require('../modules/compiler');
|
|
11
11
|
const { to_qrew } = require('../qrew/compile');
|
12
12
|
const { findAppInfo } = require('../misc/findAppInfo');
|
13
13
|
const { req } = require('../misc/req');
|
14
|
+
const { CONFIG_PATH } = require('../const/config_path');
|
14
15
|
|
15
16
|
const npm_package_name = '@makano/rew';
|
16
17
|
|
@@ -180,11 +181,19 @@ module.exports = {
|
|
180
181
|
file: path.join(installPath, c.install.build.file)
|
181
182
|
});
|
182
183
|
}
|
184
|
+
if(c.install.commands){
|
185
|
+
for(let command of c.install.commands){
|
186
|
+
execSync(command.replace(/\$installPath/g, installPath));
|
187
|
+
}
|
188
|
+
}
|
189
|
+
if(c.install.file){
|
190
|
+
run(path.join(installPath, c.install.file));
|
191
|
+
}
|
183
192
|
}
|
184
193
|
rl.close();
|
185
194
|
} else {
|
186
195
|
if (rmidiri) {
|
187
|
-
execSync(`rm -
|
196
|
+
execSync(`rm -rf ${apppath}`);
|
188
197
|
}
|
189
198
|
log(' Canceled install'.red.bold, ':end');
|
190
199
|
rl.close();
|
@@ -235,7 +244,7 @@ module.exports = {
|
|
235
244
|
|
236
245
|
function processFile(filePath, importsArray) {
|
237
246
|
const content = readFile(filePath);
|
238
|
-
const imports = extractImports(content);
|
247
|
+
const imports = argv.single ? [] : extractImports(content);
|
239
248
|
|
240
249
|
imports.forEach((importStatement) => {
|
241
250
|
const importedFilePath = path.resolve(path.dirname(filePath), importStatement.url);
|
@@ -292,6 +301,20 @@ module.exports = {
|
|
292
301
|
else if(path.startsWith('@')) this.fromRepo(path);
|
293
302
|
else this.installApp(path);
|
294
303
|
},
|
304
|
+
uninstall(packageName, all){
|
305
|
+
const confPath = path.join(CONFIG_PATH, packageName);
|
306
|
+
const apppath = path.resolve(confPath, 'app');
|
307
|
+
const appConfpath = path.join(apppath, 'app.yaml');
|
308
|
+
if(!fs.existsSync(appConfpath) && fs.existsSync(confPath) && !all){
|
309
|
+
log(` App ${packageName.green}`.red.bold, `not found`.red.bold, `but configs are found.`.green.bold);
|
310
|
+
return log(`Use the`.cyan, '--all'.green, 'flag to remove them.'.cyan, ':end');
|
311
|
+
} else if(!fs.existsSync(appConfpath) && !all){
|
312
|
+
return log(` App ${packageName.green}`.red.bold, `not found.`.red.bold, ':end');
|
313
|
+
}
|
314
|
+
log('Uninstalling'.cyan, packageName.green);
|
315
|
+
execSync('rm -rf '+(all ? confPath : apppath));
|
316
|
+
log('Uninstalled'.cyan, ':end');
|
317
|
+
},
|
295
318
|
async getRepoJson(repoUrl){
|
296
319
|
try{
|
297
320
|
const text = (await req(repoUrl.startsWith('//.') ? 'http://'+repoUrl.slice(3) : repoUrl.startsWith('//') ? 'https://'+repoUrl : repoUrl)).data;
|
@@ -346,7 +369,7 @@ module.exports = {
|
|
346
369
|
if(json.packages) Object.keys(json.packages).forEach(name => log(name)) || log(`${Object.keys(json.packages).length} Packages in ${key}`, ':end');
|
347
370
|
else log('None'.blue, ':end')
|
348
371
|
} else {
|
349
|
-
console.log(Object.keys(
|
372
|
+
console.log(Object.keys(confInstance.getAll()).join('\n'));
|
350
373
|
}
|
351
374
|
} else if (command === 'delete') {
|
352
375
|
confInstance.remove('repos');
|