From ed5dee03c86ee50880ad3bcf5ed2d1345e2bef13 Mon Sep 17 00:00:00 2001 From: Xuanwo Date: Thu, 10 Nov 2016 10:56:09 +0800 Subject: [PATCH 01/12] Fix sfile search function Signed-off-by: Xuanwo --- bin/sfile | 22 +++++----------------- lib/index.js | 10 +++++----- 2 files changed, 10 insertions(+), 22 deletions(-) diff --git a/bin/sfile b/bin/sfile index 1ca52b8..8a1a906 100755 --- a/bin/sfile +++ b/bin/sfile @@ -9,7 +9,7 @@ var sfile = require('../lib') switch (argv._[0]) { case 'i': case 'info': - var prettyjson = require('prettyjson') + var prettyjson = require('prettyjson'); var keyword = argv._[1]; if (!keyword || argv.help) { opt.showHelp(); @@ -27,7 +27,7 @@ switch (argv._[0]) { } console.log(prettyjson.render(data)); - }) + }); break; case 'search': case 's': @@ -63,18 +63,6 @@ switch (argv._[0]) { data.libs.forEach(function (lib, index) { printLn(((index > 9 ? index : " " + index) + ")").grey + " " + lib.name.replace(keyword, keyword.bold) + " [" + lib.version.green + "]"); - if (!argv.n) { - var url = sfile.url("/" + lib.name + "/" + lib.version + "/" + lib.filename, argv.ssl); - - if (argv.html) { - url = sfile.html(url); - } else if (argv.jade) { - url = sfile.jade(url); - } - - printLn((" " + url).grey); - } - printLn(""); }); }); @@ -167,7 +155,7 @@ switch (argv._[0]) { return asset.version.underline }).join(" ")); }); - break + break; default: if (argv.version || argv.v) { var json = require("../package.json"); @@ -176,7 +164,7 @@ switch (argv._[0]) { var List = require('term-list') , list = new List({ marker: '\033[36m› \033[0m', markerLength: 2 }) , styles = ['', 'html', 'jade'] - , current_style_index = 0 + , current_style_index = 0; keyword = argv._[0].trim(); @@ -214,7 +202,7 @@ switch (argv._[0]) { current.id.to_copy = current_style ? sfile[current_style](it.id.url) : it.id.url; }); list.draw(); - } + }; list.start(); diff --git a/lib/index.js b/lib/index.js index 8f752a9..3679846 100644 --- a/lib/index.js +++ b/lib/index.js @@ -1,7 +1,7 @@ var request = require('request') , colors = require('colors') - , url = "http://api.staticfile.org/v1/search?count=10&q=" - , show_url = "http://api.staticfile.org/v1/packages/" + , url = "https://api.staticfile.org/v1/search?count=10&q=" + , show_url = "https://api.staticfile.org/v1/packages/"; exports.search = function (keyword, cb) { request.get({url: url + encodeURIComponent(keyword), json: true}, function (err, response, data) { @@ -35,7 +35,7 @@ exports.info = function (keyword, cb) { return cb(null, data); }); -} +}; exports.error = function (e) { console.log("错误".redBG + " " + (e instanceof Object ? e.message : e)); @@ -63,7 +63,7 @@ exports.jade = function (file) { var ext = exports.ext(file); switch (ext) { case "js": - return 'script(type="text/javascript" src="' + file + '")' + return 'script(type="text/javascript" src="' + file + '")'; break; case 'css': return 'link(type="text/css" rel="stylesheet" href="' + file + '")'; @@ -81,5 +81,5 @@ exports.ext = function (filename) { exports.url = function (path, ssl) { ssl = ssl || false; - return (ssl ? '//dn-staticfile.qbox.me' : 'http://cdn.staticfile.org') + path; + return (ssl ? '//cdn.staticfile.org' : 'http://cdn.staticfile.org') + path; }; From 2a824eef2e3a96f272f1d5083364f0acb36a8af8 Mon Sep 17 00:00:00 2001 From: Xuanwo Date: Thu, 10 Nov 2016 10:57:59 +0800 Subject: [PATCH 02/12] Remove unused flag on search Signed-off-by: Xuanwo --- bin/sfile | 8 -------- 1 file changed, 8 deletions(-) diff --git a/bin/sfile b/bin/sfile index 8a1a906..76f3ee6 100755 --- a/bin/sfile +++ b/bin/sfile @@ -33,14 +33,6 @@ switch (argv._[0]) { case 's': argv = opt .usage("sfile " + argv._[0] + " [library]") - .alias('s', 'ssl') - .alias('h', 'html') - .alias('j', 'jade') - .alias('n', 'no-link') - .describe('s', 'Output HTTPS link') - .describe('h', 'Output HTML') - .describe('j', 'Output Jade Markup') - .describe('n', 'Do not show the link for latest version') .argv; var keyword = argv._[1]; From 26d83c5256567b6a383a29ab4a33da7d41359a50 Mon Sep 17 00:00:00 2001 From: Xuanwo Date: Thu, 10 Nov 2016 11:30:44 +0800 Subject: [PATCH 03/12] Fix sfile get function Signed-off-by: Xuanwo --- bin/sfile | 62 +++++++--------------------------------------------- lib/index.js | 18 --------------- 2 files changed, 8 insertions(+), 72 deletions(-) diff --git a/bin/sfile b/bin/sfile index 76f3ee6..1bbe09e 100755 --- a/bin/sfile +++ b/bin/sfile @@ -81,57 +81,16 @@ switch (argv._[0]) { return; } keyword = keyword.trim(); - sfile.get(keyword, function (err, lib, suggest) { + sfile.info(keyword, function (err, libs) { if (err) return sfile.error(err); - if (!lib) { - printLn("未找到库: " + keyword); - // 搜索建议 - if (suggest.length > 0) { - printLn(""); - for (var i in suggest) { - suggest[i] = suggest[i].underline; + var version = (argv.version && argv.version !== true) ? argv.version : "" + libs.version; + printLn("库名:".green+libs.name); + printLn("当前版本:".green+version); + libs.assets[0].files.forEach(function (filename, index) { + printLn(sfile.url('/'+libs.name+'/'+version+'/'+filename).white); } - printLn("你是不是要找: ".cyan + suggest.slice(0, 5).join(" ")); - } - return; - } - - var version = (argv.version && argv.version !== true) ? argv.version : "" + lib.version; - var matched = false; - - // 匹配package.json给出的版本 - lib.assets.forEach(function (asset) { - if (asset.version == version) { - if (matched) return; - matched = asset; - } - }); - - // 未匹配容错 - if (!matched && lib.assets[0] && !argv.version) { - matched = lib.assets[0]; - } - - if (!matched) { - printLn("未找到 " + keyword + " [" + (argv.version + "").red + "]"); - } else { - printLn("找到 " + lib.name.bold + " [" + version.green + "]:"); - printLn(""); - - var urls = []; - matched.files.forEach(function (file) { - var path = "/" + lib.name + "/" + version + "/" + file; - var url = sfile.url(path, argv.ssl); - if (argv.html) { - url = sfile.html(url); - } else if (argv.jade) { - url = sfile.jade(url); - } - - url && printLn(url) && urls.push(url); - }); - + ) // 复制到剪贴板 if (argv.copy) { clip(urls.join(argv.html || argv.jade ? "\n" : "\\\\n"), function (err) { @@ -139,13 +98,8 @@ switch (argv._[0]) { printLn("✔ 已复制到剪贴板".green); }); - } - } + }; printLn(""); - if (argv.version) - printLn("支持的版本号: ".cyan + lib.assets.map(function (asset) { - return asset.version.underline - }).join(" ")); }); break; default: diff --git a/lib/index.js b/lib/index.js index 3679846..c78b852 100644 --- a/lib/index.js +++ b/lib/index.js @@ -9,24 +9,6 @@ exports.search = function (keyword, cb) { }); }; -exports.get = function (keyword, cb) { - request.get({url: url + encodeURIComponent(keyword), json: true}, function (err, response, data) { - if (err) return cb(err); - - if (!data.libs) return cb(null, false); - - var matched_lib = false; - var suggest = []; - - data.libs.forEach(function (lib) { - if (lib.name.toLowerCase() == keyword.toLowerCase()) matched_lib = lib; - suggest.push(lib.name); - }); - - return cb(null, matched_lib, suggest); - }); -}; - exports.info = function (keyword, cb) { request.get({url: show_url + encodeURIComponent(keyword), json: true}, function (err, response, data) { if (err) return cb(err); From 25e8d9c60818f2942c6e0f80ba1ccb47b3ae974a Mon Sep 17 00:00:00 2001 From: Xuanwo Date: Thu, 10 Nov 2016 11:38:47 +0800 Subject: [PATCH 04/12] Remove broken function Signed-off-by: Xuanwo --- bin/sfile | 76 +------------------------------------------------------ 1 file changed, 1 insertion(+), 75 deletions(-) diff --git a/bin/sfile b/bin/sfile index 1bbe09e..296ae1b 100755 --- a/bin/sfile +++ b/bin/sfile @@ -3,7 +3,7 @@ var sfile = require('../lib') , clip = require('cliparoo') , opt = require('optimist') , argv = opt - .usage("[Usage]\n\nsfile [command|library]\n\nCommands:\n\n s, search [library]\tTo search the library...\n g, get [library]\tTo get the library assets links...") + .usage("[Usage]\n\nsfile [command]\n\nCommands:\n\n s, search [library]\tTo search the library...\n g, get [library]\tTo get the library assets links...") .argv; switch (argv._[0]) { @@ -103,81 +103,7 @@ switch (argv._[0]) { }); break; default: - if (argv.version || argv.v) { - var json = require("../package.json"); - printLn(json.version); - } else if (argv._[0]) { - var List = require('term-list') - , list = new List({ marker: '\033[36m› \033[0m', markerLength: 2 }) - , styles = ['', 'html', 'jade'] - , current_style_index = 0; - - keyword = argv._[0].trim(); - - sfile.search(keyword, function (err, data) { - if (err) return sfile.error(err); - - if (!data.total) { - return printLn("没有结果"); - } - - printLn(("搜索 " + keyword.bold + " 共有 " + (data.total + "").bold + " 个库,当前列出 " + (data.libs.length + "").bold + " 个:")); - - data.libs.forEach(function (lib, index) { - var url = sfile.url("/" + lib.name + "/" + lib.version + "/" + lib.filename); - lib.index = index; - lib.base = lib.name.replace(keyword, keyword.bold) + " [" + lib.version.green + "] "; - lib.url = url; - lib.to_copy = url; - lib.subLabel = lib.filename; - lib.current = 'url'; - list.add(lib, lib.base + lib.subLabel.grey); - }); - - var changeStyle = function (reverse) { - if (reverse) { - current_style_index = current_style_index - 1 < 0 ? 2 : current_style_index - 1; - } else { - current_style_index = current_style_index + 1 > 2 ? 0 : current_style_index + 1; - } - var current_style = styles[current_style_index]; - - list.items.forEach(function (it, i) { - var current = list.at(i); - current.label = it.id.base + it.id.subLabel.grey + (current_style && (' [' + current_style + ']').red); - current.id.to_copy = current_style ? sfile[current_style](it.id.url) : it.id.url; - }); - list.draw(); - }; - - list.start(); - - list.on("keypress", function (key, item) { - switch (key.name) { - case "return": - clip(item.to_copy, function (err) { - if (err) return sfile.error(err); - - printLn("✔ 已复制到剪贴板".green); - }); - list.stop(); - break; - case "left": - changeStyle(true); - break; - case "right": - changeStyle(false); - break; - } - }); - - list.on('empty', function () { - list.stop(); - }); - }); - } else { opt.showHelp(); - } } function printLn() { From 3a1a3aa5c424b53c754052299ad39a4deee4b37b Mon Sep 17 00:00:00 2001 From: Xuanwo Date: Thu, 10 Nov 2016 11:44:07 +0800 Subject: [PATCH 05/12] Fix https link Signed-off-by: Xuanwo --- bin/sfile | 2 +- lib/index.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/bin/sfile b/bin/sfile index 296ae1b..d1d1db8 100755 --- a/bin/sfile +++ b/bin/sfile @@ -88,7 +88,7 @@ switch (argv._[0]) { printLn("库名:".green+libs.name); printLn("当前版本:".green+version); libs.assets[0].files.forEach(function (filename, index) { - printLn(sfile.url('/'+libs.name+'/'+version+'/'+filename).white); + printLn(sfile.url('/'+libs.name+'/'+version+'/'+filename,argv.ssl).white); } ) // 复制到剪贴板 diff --git a/lib/index.js b/lib/index.js index c78b852..9b0cb12 100644 --- a/lib/index.js +++ b/lib/index.js @@ -63,5 +63,5 @@ exports.ext = function (filename) { exports.url = function (path, ssl) { ssl = ssl || false; - return (ssl ? '//cdn.staticfile.org' : 'http://cdn.staticfile.org') + path; + return (ssl ? 'https://cdn.staticfile.org' : 'http://cdn.staticfile.org') + path; }; From 3cc6ae2a0049e91ef942d9a83407e90690030cac Mon Sep 17 00:00:00 2001 From: Xuanwo Date: Thu, 10 Nov 2016 11:44:58 +0800 Subject: [PATCH 06/12] Update readme to fit latest version Signed-off-by: Xuanwo --- README.md | 20 -------------------- 1 file changed, 20 deletions(-) diff --git a/README.md b/README.md index 079acd2..0b9c5ee 100644 --- a/README.md +++ b/README.md @@ -10,28 +10,12 @@ npm install -g sfile # 使用 -## 快捷搜索 - -快速搜索关键字 - -``` -sfile [library] -``` - -![快速搜索](https://github.com/staticfile/cli/raw/master/docs/quicksearch.png) - ## 搜索 搜索关键字 ``` sfile search [library] - -Options: - -s, --ssl Output HTTPS link - -h, --html Output HTML - -j, --jade Output Jade Markup - -n, --no-link Do not show the link for latest version ``` ## 获取链接 @@ -43,10 +27,6 @@ sfile get [library] Options: -s, --ssl Output HTTPS link - -h, --html Output HTML - -j, --jade Output Jade Markup - -v, --version Use given version, leave empty if you want to see all supported version - -c, --copy Copy to your system clipboard ``` ## 查看版本 From fc715c877198209350eae33c8204cc9a7416e715 Mon Sep 17 00:00:00 2001 From: Xuanwo Date: Thu, 10 Nov 2016 11:45:45 +0800 Subject: [PATCH 07/12] Remove unused image Signed-off-by: Xuanwo --- docs/quicksearch.png | Bin 11330 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 docs/quicksearch.png diff --git a/docs/quicksearch.png b/docs/quicksearch.png deleted file mode 100644 index 49903a7795d6fc96af29522ee2cae5c8f102e3b6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11330 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

)%!d?9Imx3fw2Q z`ypL6jeN|XNYo5ki$DlQwD_U8A%)7BAU({Bh2z?MU*fgmTHghNY-`IW?kxqaLjC{h zUzibUs0;@FTupT~!XQDk!<+nFx(+)uKM1suvj{{rAJ`O=N>rG}I$Jz(X(Frg1l ztKK_%dA@v^6jWJNt+bfv8WaioG%7R^vWqH_o>k+$j`{roRKv@{e4t^<_NVNd)O)^| zJ@qFtZ-xvgU`-2z^myux)k4%7^UL)>(c@(zIPv4H|9wg+2}4;mzK8DO&_e!qCgRcQ(Y+`VDaGJD%R^Yk4oz zbor|_5ayfP^I~N6WM%#i)`M!U?>QW(PP`iz6Y<2?b2K>wD31qUhD-iX-}g^ z`aOd`yRg3$PGmatPzw~z!f6ZgHUVExye{(*t5%xom#&^E82WdjQyT~QC=asQYX>k3 z@y{u!Q{CNMSiInKuh!70^mW+CKbSI)I9D^vH=*A6mde4qhj@T!_+bYFJ&rrNmul%R zv9Y%w5g;m3C1YoE={VceqpQd2PJ2~$#O~@v{E-^gfdSCkFwXHdu5=LNh}HvLr7VPc z4nwj=?1G+MS*h-eX8EGZHq-16S|(e=MXNvZkm}_pw&<1(pv0;Vsk#nwx0k>BcAMqR zllUNEkT5@$qEA8%EP!W(w2^46iMq^nzHorpmKdv~$by)pN@*g2Jc~6vC zzHf1T-m$aw)%&#{-}jfM#X^}LM$nnszxbM{0H-#J#Ry!y33zSlTr134JT0{22FMK% zlof{%-pDYAV4Spcs_KgsNAJh$63rjDEE(ajoeyqfUNhCD9cXf?Qm2>-EEj`gtuj?S z&n5$rit)!4^{RrhH2*62U+-d&X%CnN({lW`WYHYlrFyOn=KWwbjg4Siq zFoLTT(~yC^X~uHUOj@)sz~44*`UQ{ve`U{@Dsy#-GAt4$Q#DkTnLevO$x!tJVJIQC zB}8B_&bCpV{q(Lr+}s6NE5ZmM{Q%!g3S}ZoYWUWmF^iV4XSk-`0%8 zIQ{DH|6}+o^-iuwMsqnbtp=aHPa)(SGSjb(;SHhYrMFc-zXhZU@ds_{8tGG=cbeb7mq1 z_kNhoclTB-_5E#CNa^0M0BPEG8!JgWbfp>_l0Kt*m z@2=M_1F>P$)y25YJ|Sb`6+`o`6sCb6Q5zp76+h>z)O6|GLt6!^KwSY%vctC<}wY(%`5qjAlb|lgviVpYK1li+0@oO1|(B;0Amlgu_xW;rGk) zJ5fWP0x-foY$d1@;?Af|wzyDqF1w<#P^Kg(5XTVyE=7VC;F)><&J!D^)=DffKs0*m zk`C(N4cD)_)XtWu&&MZkc5xC}BhHt_%M`n7zA*2o!v!b0&cW~WNl^yyaN`b$JJW#W zZ*pegup8UmSt!NNsx<-Ws+p+*wiAzG%bsJ&)Oby#e!FMjvG*MJR*Ni4`6NEr9~mOG zx%T$1^rw>)f{H809_8?W_P=KVuy>Zii7&mZ|7rAIE_LN8#g%%+{(&*$k`FZ{hTQ_U z<=E1q=Cr;FrQ|h>3$Qz1wVh4uWcz@LTpC9kIVShR%skGm-%tH6HodP%2O+fR92<)w z4s;5{OK}2Ts2>%P9iv2Xg*I@!FhJIFoi>9!q&K83ig=`SV5L9W3D7);ozbHKEfO)5o3f|4?Y57i65@t zcye*pBlReWx^YR>@+JPS3!wH@t=ryTjvystI)w;afKVIx3><$8vnqB_T#SP7bBCWz{pMoOd!? zLH#Sa)t!*}osd{<;mdzj1(=Oh?sA-QO?M|<@c>*ObV^NpSUL{2865py1^AXOg zf^-V0x}2T&2h{64?OE9?&;LH7*H@~B;P7AmMVXG zD<|cTYz!&Tbi~}*x)?%kh#c7eD$I*FRcxsSO!fbzE0Md5Q`ei#5YlSd> zZlPBH?9whX

KsX72eXM)sM2-7B7mvNJ-;uP z>-8VEY$p2gUOz%C5PXL)ymW8$a=$)!D#$e;3)M${j4ZttnssoiCi%_V(*9?( z-y{4)7Zhn)Nn0^t8~$A2jgTlRPFT$1qKO8L|Jr;8_O!|K=jS5{VZ_Tk3A2ozwfmh5 zH?F$;!AKO6CQ@DDocQcd5`sfUC}9+CEFL3Qne^7heburGC1lT7y&70ED8U!|d=IG#O}vGvSLdptdj>stch(NUU%oHznV|CIQn}u zo-VT79>W-bPPy;FUa)p?I+c>ZLM~LErf3u#gP*g+Y2gKH(mFli!Hz^@O-d)6$t=QK zt1kWVgB7wfGwSuVw0TA0!}m^`QrvNaF*~<-9`ePifui93(AFWTZXIgi7_1J<2pxAf zzo8IEB1Qs-;vAsmTo;|92sLRa_>4KZT0EN$UUc6p_POFjrc)5dul}Ady>~d=GMOU3 z+X*s^=~4<0_=n)}55wQNRjac7(&Wam`z0BaVlj_#Hz}P{M*l)xuhLt6?H1b%tQ1<}U9IIizfymPtr=>e!lWz)w zwir?m+PJRfyvJ!vLl6pEYh5P=8ar~x?W}UfW{+~uGtgxKJ+;d)#2x;NXd{g3t>2w+ zf-90F9yf0nl2F}jZ7Qt|bHK_H?r=U3Y=FNNB^-q&0DW1tgVXOw>$IJ@JCC)Y~tcN&~2@k z`MdLQJoDBu$@$4)ZrhVlDD+g~>z@%tOB+>+7C~k8(uVziOV6$nviKsf87+TI?#u_b zfur7up1D^m>P8Y}O(Wh?vMi?`KdxJvlcagqe$-TmZ^K$)rp!E~AaQ;=)miRkI+)~N z5qH?<PB$7S-zvDr@3TF z64L%M4@<4`Z~s#&Gb!H~3j}1@)iu(B$^!3LMu_wiI-UPs+^l-_aP`K6iV~ z!_J~D!274`N7V;`QpW1)OzI6CD0Gcnb#jQEhA?-&~a{Ty)tE-m`NT20* zkoDljy$KwaAg~su>WAbKU?1ombrT)ACmQ;myXlRP%+2OMFMc#G0!net|A=;)d1mbm z>={)n?s4Ff)@E!O4Q@XZU5-?cQEipK}BG6${MVN2vam@`5oh%X(R!J$fHg9P5h!T-}|9O_I9 zEp2-Qj@?hXvdNpJmE}UV34_kNa5giKBu4GnHd&*)X)+qTyOM-(HI`O4c?(Lbj>@On z@@M@A^&AcDtXn#=8!jcjx7%I4N*4QY;Q1@TEPq8gEiu0=Eola?!Ln@OVZK|Ri=Ro0 zRMrWP33&NMqRx82GWld{^)qz*NOA-Xzw>@A_{TrRyl{^YyQpuRMQ&9osg&HKLVzCZ)#>+& zi4#H%CK+^2nl)ziTIAQ!-{U!2*@Vs}g+s2gWPpv>fR(h>0m0c!6k+xi`JG$}l#qL& z_|J;}6L@JIM8?KvQg{W(LASXLJ!&Zeu*r7vMf!ar&$8UP`yMk>|BeAApIJ}l;P=Zw+;KA&G ziIJOJ{AGG`Vl?v>7)L0VM92w8B{}N5(~@%2w3@0jg0e8TD2o4PWu^P zMrHM1)U9WPxn6IV*=AjKTnx-zv$f$siOT0C0JY`)R^V@eF}wldHMg{LWo1)UbzZM$ zg`u`MLO$fo4tMZvk5cb~Uf{SJoy7F7994j}Mu=BWWoL9rpo|85BMEFIax0+s`9|6U z44ul;8Y5Bji}L?cP1%eTEAetWIQYs@Y%)s|7kRv~cMRjm{zWoi1QWqD#PJxk+~oi} zb~R@jx+?T_Lqvm|PRiuO(NCn}LBXiQP@p$2`^6pS%B$-i!nfVwMlmgNG^|kx6iA_xuqS#v!t&)gwC$+eV Date: Thu, 10 Nov 2016 11:49:28 +0800 Subject: [PATCH 08/12] Add contributors, bump breaking change version Signed-off-by: Xuanwo --- package.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index 4767d13..37c5020 100644 --- a/package.json +++ b/package.json @@ -1,8 +1,11 @@ { "name": "sfile", - "version": "0.1.2", + "version": "1.0.0", "description": "The static library search and cli for staticfile.org.", "author": "hfcorriez ", + "contributors": [ + "Xuanwo (https://xuanwo.org/)" + ], "licenses": [ { "type": "MIT", From 69c2e6c555214b54cfef35fef797598a1ed3a009 Mon Sep 17 00:00:00 2001 From: Xuanwo Date: Thu, 10 Nov 2016 16:49:07 +0800 Subject: [PATCH 09/12] Unite domain to cdn.staticfile.org Signed-off-by: Xuanwo --- bin/sfile | 2 +- lib/index.js | 6 ++---- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/bin/sfile b/bin/sfile index d1d1db8..296ae1b 100755 --- a/bin/sfile +++ b/bin/sfile @@ -88,7 +88,7 @@ switch (argv._[0]) { printLn("库名:".green+libs.name); printLn("当前版本:".green+version); libs.assets[0].files.forEach(function (filename, index) { - printLn(sfile.url('/'+libs.name+'/'+version+'/'+filename,argv.ssl).white); + printLn(sfile.url('/'+libs.name+'/'+version+'/'+filename).white); } ) // 复制到剪贴板 diff --git a/lib/index.js b/lib/index.js index 9b0cb12..fb3ae87 100644 --- a/lib/index.js +++ b/lib/index.js @@ -60,8 +60,6 @@ exports.ext = function (filename) { return (i < 0) ? '' : filename.substr(i + 1); }; -exports.url = function (path, ssl) { - ssl = ssl || false; - - return (ssl ? 'https://cdn.staticfile.org' : 'http://cdn.staticfile.org') + path; +exports.url = function (path) { + return '//cdn.staticfile.org' + path; }; From 92ad0995eea02bf5097d053eb363b1897649facb Mon Sep 17 00:00:00 2001 From: Xuanwo Date: Fri, 11 Nov 2016 11:13:21 +0800 Subject: [PATCH 10/12] Build test suit, prepare for refactor. Signed-off-by: Xuanwo --- lib/index.js | 1 + package.json | 7 +++++++ test/index.test.js | 8 ++++++++ test/sfile.test.js | 0 4 files changed, 16 insertions(+) create mode 100644 test/index.test.js create mode 100644 test/sfile.test.js diff --git a/lib/index.js b/lib/index.js index fb3ae87..de5c56d 100644 --- a/lib/index.js +++ b/lib/index.js @@ -7,6 +7,7 @@ exports.search = function (keyword, cb) { request.get({url: url + encodeURIComponent(keyword), json: true}, function (err, response, data) { return cb(err, data); }); + return true; }; exports.info = function (keyword, cb) { diff --git a/package.json b/package.json index 37c5020..80d257b 100644 --- a/package.json +++ b/package.json @@ -16,6 +16,9 @@ "engines": { "node": "*" }, + "scripts": { + "test": "mocha --recursive" + }, "dependencies": { "optimist": "0.6.0", "colors": "0.6.2", @@ -26,5 +29,9 @@ }, "bin": { "sfile": "bin/sfile" + }, + "devDependencies": { + "chai": "^3.5.0", + "mocha": "^3.1.2" } } diff --git a/test/index.test.js b/test/index.test.js new file mode 100644 index 0000000..b6e7b1f --- /dev/null +++ b/test/index.test.js @@ -0,0 +1,8 @@ +var sfile = require('../lib'); +var should = require('chai').should(); + +describe('index test', function () { + it('search test', function () { + sfile.search('jquery').should.eql(true); + }) +}); \ No newline at end of file diff --git a/test/sfile.test.js b/test/sfile.test.js new file mode 100644 index 0000000..e69de29 From 55216e995761595e5a2cbe6e749e1354745619b3 Mon Sep 17 00:00:00 2001 From: Xuanwo Date: Fri, 11 Nov 2016 11:14:08 +0800 Subject: [PATCH 11/12] Add travis ci Signed-off-by: Xuanwo --- .travis.yml | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 .travis.yml diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..d751acd --- /dev/null +++ b/.travis.yml @@ -0,0 +1,9 @@ +language: node_js +node_js: + - "6" + - "4" + - "0.12" +install: + - npm install +script: + - npm test \ No newline at end of file From 590b9d5dffe5dbf16d43d1c6424750da6aa2c33d Mon Sep 17 00:00:00 2001 From: Xuanwo Date: Fri, 11 Nov 2016 11:19:26 +0800 Subject: [PATCH 12/12] Add build status into README Signed-off-by: Xuanwo --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 0b9c5ee..f8af344 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,8 @@ [staticfile.org](http://staticfile.org)命令行工具 +![](https://api.travis-ci.org/staticfile/cli.svg) + # 安装 ```