UNPKG

jj-cli

Version:
1 lines 2.08 kB
"use strict";const{promisify:e}=require("util"),a=e(require("download-git-repo")),{nodeRepo:t,pythonRepo:n}=require("./config/repo-config"),o=require("../../untils/common"),i=require("../../untils/logs"),{commandSpawn:r,runSpawnCommand:s}=require("../../untils/terminal"),{renameAsync:l,mkdirAsync:p,replaceContent:c,syncCopyFolder:d,syncDeleteFolder:w}=require("./../../untils/fs"),m=require("path"),u=async(e,a,t,n,o)=>{const i=new Map([["node",g],["vue",()=>{}],["react",()=>{}],["python",y]]).get(e);i&&await i(a,t,n,o)};async function y(e,t,s,u){if(~u.indexOf(" "))return void i.logFatal("Your project name contains spaces");const y=m.resolve(t,u);await p(y),await o.runTask("Downloading...",(async()=>{await a(n,y,{clone:!0})})),i.logFriendly("handle file..."),await l(m.resolve(y,"pythonScrapyTemplate"),m.resolve(y,u)),await l(m.resolve(y,u,"spiders","template.py"),m.resolve(y,u,"spiders",`${u}Spider.py`)),u=u.slice(0,1).toUpperCase()+u.slice(1),await c(m.resolve(y,u,"spiders",`${u}Spider.py`),"TemplateSpider",`${u}Spider`),await c(m.resolve(y,u,"spiders",`${u}Spider.py`),"template",u),await c(m.resolve(y,"run.sh"),"pythonScrapyTemplate",u),await c(m.resolve(y,"scrapy.cfg"),"pythonScrapyTemplate",u),await c(m.resolve(y,u,"main.py"),"template",u),await c(m.resolve(y,u,"settings.py"),"pythonScrapyTemplate",u),await l(t,t+"_jjtemp");const g=t+"_jjtemp",v=m.resolve(g,"../");d(g,v),w(g);const S=m.resolve(v,u);await o.isInstalled("git")&&await r("git",["init"],{cwd:`${S}`}),i.logSuccess("Done~");(await Promise.resolve().then((()=>require("open"))))(S,{wait:!1})}async function g(e,n,s,l){await o.runTask("Downloading...",(async()=>{await a(t,n,{clone:!0})}));const p="win32"===e.platform?"npm.cmd":"npm";await o.runTask("Installing...",(async()=>{await r(p,["install"],{cwd:`${n}`})}));const c=await o.isInstalled("nodemon")?"nodemon":"start";i.logInfo("Serving..."),r(p,["run",c],{cwd:`${n}`});const d=await Promise.resolve().then((()=>require("open")));setTimeout((()=>{d("http://localhost:3000/",{wait:!1}),i.logSuccess("done")}),2e3)}module.exports={create:u};