@makano/rew 1.5.1 → 1.5.2
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/lib/rew/cli/helpers.js +3 -2
- package/lib/rew/cli/utils.js +20 -12
- package/package.json +1 -1
package/lib/rew/cli/helpers.js
CHANGED
@@ -10,7 +10,7 @@ const cachepath = path.join(conf({}).create('').root, '.cache');
|
|
10
10
|
const localBinPath = path.join(binpath, '../../../', 'bin');
|
11
11
|
|
12
12
|
const FILE_DL_EXTRACT_REGEX = /^file\+sha\(([^)]+)\)\+([a-zA-Z0-9_-]+)(\([^\)]*\))?:(.*)$|^file\+([a-zA-Z0-9_-]+)(\([^\)]*\))?:(.*)$/;
|
13
|
-
|
13
|
+
const HTTP_REGEX = /^https?:\/\/(www\.)?[a-zA-Z0-9\-._~:\/?#@!$&'()*+,;=%]+$/
|
14
14
|
|
15
15
|
if (!fs.existsSync(CONFIG_PATH) || !fs.existsSync(CONFIG_PATH + '/repos.yaml')) {
|
16
16
|
fs.mkdirSync(CONFIG_PATH, { recursive: true });
|
@@ -70,5 +70,6 @@ module.exports = {
|
|
70
70
|
npm_package_name,
|
71
71
|
getAllPipeInput,
|
72
72
|
hashTags,
|
73
|
-
FILE_DL_EXTRACT_REGEX
|
73
|
+
FILE_DL_EXTRACT_REGEX,
|
74
|
+
HTTP_REGEX
|
74
75
|
}
|
package/lib/rew/cli/utils.js
CHANGED
@@ -22,7 +22,8 @@ const {
|
|
22
22
|
cachepath,
|
23
23
|
localBinPath,
|
24
24
|
hashTags,
|
25
|
-
FILE_DL_EXTRACT_REGEX
|
25
|
+
FILE_DL_EXTRACT_REGEX,
|
26
|
+
HTTP_REGEX
|
26
27
|
} = require('./helpers');
|
27
28
|
const { input } = require('../functions/stdout');
|
28
29
|
|
@@ -203,7 +204,7 @@ module.exports = {
|
|
203
204
|
}
|
204
205
|
}
|
205
206
|
},
|
206
|
-
installApp(pathname, opts, rmidir
|
207
|
+
installApp(pathname, opts, rmidir) {
|
207
208
|
if (!pathname) {
|
208
209
|
return;
|
209
210
|
}
|
@@ -282,6 +283,9 @@ module.exports = {
|
|
282
283
|
}
|
283
284
|
|
284
285
|
log(' Installed '.green + pname.cyan.bold, ':end');
|
286
|
+
if(rmidir){
|
287
|
+
fs.rmdirSync(apppath);
|
288
|
+
}
|
285
289
|
}
|
286
290
|
rl.close();
|
287
291
|
} else {
|
@@ -587,8 +591,10 @@ module.exports = {
|
|
587
591
|
process.exit(1);
|
588
592
|
}
|
589
593
|
|
594
|
+
const isUrl = HTTP_REGEX.test(url);
|
595
|
+
|
590
596
|
const fileName = path.basename(url);
|
591
|
-
const filePath = path.join(pathToDownloadInto, fileName);
|
597
|
+
const filePath = isUrl ? path.join(pathToDownloadInto, fileName) : url;
|
592
598
|
|
593
599
|
const extractPath = path.join(pathToDownloadInto, 'extract');
|
594
600
|
if(opts.c || opts.clean || opts.u){
|
@@ -604,13 +610,15 @@ module.exports = {
|
|
604
610
|
);
|
605
611
|
|
606
612
|
if(opts.verbose){
|
607
|
-
log('Download started for'.cyan, url.yellow, 'at'.cyan, filePath.yellow, shaHash ? 'with sha'.cyan : '', shaHash ? shaHash.yellow : '');
|
613
|
+
if(isUrl) log('Download started for'.cyan, url.yellow, 'at'.cyan, filePath.yellow, shaHash ? 'with sha'.cyan : '', shaHash ? shaHash.yellow : '');
|
608
614
|
} else {
|
609
|
-
log(`Downloading`.cyan, fileName.yellow);
|
615
|
+
if(isUrl) log(`Downloading`.cyan, fileName.yellow);
|
610
616
|
}
|
611
|
-
const downloaded =
|
617
|
+
const downloaded = isUrl ? (
|
618
|
+
fs.existsSync(extractPath) ? true : this.downloadFileFromUrl(url, filePath, shaHash, opts)
|
619
|
+
) : true;
|
612
620
|
if(downloaded){
|
613
|
-
log(`Download Complete for`.cyan, fileName.yellow);
|
621
|
+
if(isUrl) log(`Download Complete for`.cyan, fileName.yellow);
|
614
622
|
log('Extracting'.cyan, fileName.yellow);
|
615
623
|
if(opts.verbose){
|
616
624
|
log('Running command:'.cyan, command.green.bold, 'for'.cyan, filePath.yellow, 'at'.cyan, extractPath.yellow);
|
@@ -631,16 +639,16 @@ module.exports = {
|
|
631
639
|
return null;
|
632
640
|
}
|
633
641
|
|
634
|
-
return extractPath;
|
642
|
+
return [extractPath, opts, !isUrl];
|
635
643
|
} else {
|
636
|
-
return null;
|
644
|
+
return [null, opts];
|
637
645
|
}
|
638
646
|
},
|
639
647
|
async installAppFrom(path, opts) {
|
640
|
-
if (path.startsWith('github:')) this.installApp(await this.cloneGit(path, opts), opts
|
641
|
-
if (path.match(FILE_DL_EXTRACT_REGEX)) this.installApp(this.downloadFile(path, opts)
|
648
|
+
if (path.startsWith('github:')) this.installApp(await this.cloneGit(path, opts), opts);
|
649
|
+
else if (path.match(FILE_DL_EXTRACT_REGEX)) this.installApp(...this.downloadFile(path, opts));
|
642
650
|
else if (path.startsWith('@')) this.fromRepo(path, opts);
|
643
|
-
else this.installApp(path, opts
|
651
|
+
else this.installApp(path, opts);
|
644
652
|
},
|
645
653
|
uninstall(packageName, all) {
|
646
654
|
const confPath = path.join(CONFIG_PATH, packageName);
|