ccommand 1.0.52 → 1.0.53
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/dist/cli.js +11 -11
- package/dist/index.js +11 -11
- package/package.json +1 -1
package/dist/cli.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var Ce=Object.create;var re=Object.defineProperty;var Ie=Object.getOwnPropertyDescriptor;var ve=Object.getOwnPropertyNames;var _e=Object.getPrototypeOf,Se=Object.prototype.hasOwnProperty;var D=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var Me=(e,t,r,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of ve(t))!Se.call(e,n)&&n!==r&&re(e,n,{get:()=>t[n],enumerable:!(s=Ie(t,n))||s.enumerable});return e};var C=(e,t,r)=>(r=e!=null?Ce(_e(e)):{},Me(t||!e||!e.__esModule?re(r,"default",{value:e,enumerable:!0}):r,e));var W=D((De,oe)=>{"use strict";oe.exports=(e,t=process.argv)=>{let r=e.startsWith("-")?"":e.length===1?"-":"--",s=t.indexOf(r+e),n=t.indexOf("--");return s!==-1&&(n===-1||s<n)}});var ae=D((We,ce)=>{"use strict";var Le=require("os"),ie=require("tty"),w=W(),{env:m}=process,j;w("no-color")||w("no-colors")||w("color=false")||w("color=never")?j=0:(w("color")||w("colors")||w("color=true")||w("color=always"))&&(j=1);"FORCE_COLOR"in m&&(m.FORCE_COLOR==="true"?j=1:m.FORCE_COLOR==="false"?j=0:j=m.FORCE_COLOR.length===0?1:Math.min(parseInt(m.FORCE_COLOR,10),3));function q(e){return e===0?!1:{level:e,hasBasic:!0,has256:e>=2,has16m:e>=3}}function K(e,t){if(j===0)return 0;if(w("color=16m")||w("color=full")||w("color=truecolor"))return 3;if(w("color=256"))return 2;if(e&&!t&&j===void 0)return 0;let r=j||0;if(m.TERM==="dumb")return r;if(process.platform==="win32"){let s=Le.release().split(".");return Number(s[0])>=10&&Number(s[2])>=10586?Number(s[2])>=14931?3:2:1}if("CI"in m)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","GITHUB_ACTIONS","BUILDKITE"].some(s=>s in m)||m.CI_NAME==="codeship"?1:r;if("TEAMCITY_VERSION"in m)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(m.TEAMCITY_VERSION)?1:0;if(m.COLORTERM==="truecolor")return 3;if("TERM_PROGRAM"in m){let s=parseInt((m.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(m.TERM_PROGRAM){case"iTerm.app":return s>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(m.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(m.TERM)||"COLORTERM"in m?1:r}function Pe(e){let t=K(e,e&&e.isTTY);return q(t)}ce.exports={supportsColor:Pe,stdout:q(K(!0,ie.isatty(1))),stderr:q(K(!0,ie.isatty(2)))}});var pe=D((qe,ue)=>{"use strict";var Ae=ae(),v=W();function le(e){if(/^\d{3,4}$/.test(e)){let r=/(\d{1,2})(\d{2})/.exec(e);return{major:0,minor:parseInt(r[1],10),patch:parseInt(r[2],10)}}let t=(e||"").split(".").map(r=>parseInt(r,10));return{major:t[0],minor:t[1],patch:t[2]}}function U(e){let{env:t}=process;if("FORCE_HYPERLINK"in t)return!(t.FORCE_HYPERLINK.length>0&&parseInt(t.FORCE_HYPERLINK,10)===0);if(v("no-hyperlink")||v("no-hyperlinks")||v("hyperlink=false")||v("hyperlink=never"))return!1;if(v("hyperlink=true")||v("hyperlink=always")||"NETLIFY"in t)return!0;if(!Ae.supportsColor(e)||e&&!e.isTTY||process.platform==="win32"||"CI"in t||"TEAMCITY_VERSION"in t)return!1;if("TERM_PROGRAM"in t){let r=le(t.TERM_PROGRAM_VERSION);switch(t.TERM_PROGRAM){case"iTerm.app":return r.major===3?r.minor>=1:r.major>3;case"WezTerm":return r.major>=20200620;case"vscode":return r.major>1||r.major===1&&r.minor>=72}}if("VTE_VERSION"in t){if(t.VTE_VERSION==="0.50.0")return!1;let r=le(t.VTE_VERSION);return r.major>0||r.minor>=50}return!1}ue.exports={supportsHyperlink:U,stdout:U(process.stdout),stderr:U(process.stderr)}});var S=C(require("fs/promises")),$e=require("fs"),Y=C(require("path")),p=require("lazy-js-utils"),we=C(require("fast-glob")),u=C(require("@simon_he/colorize"));var l="\x1B[",P="\x1B]",I="\x07",V=";",ne=process.env.TERM_PROGRAM==="Apple_Terminal",c={};c.cursorTo=(e,t)=>{if(typeof e!="number")throw new TypeError("The `x` argument is required");return typeof t!="number"?l+(e+1)+"G":l+(t+1)+";"+(e+1)+"H"};c.cursorMove=(e,t)=>{if(typeof e!="number")throw new TypeError("The `x` argument is required");let r="";return e<0?r+=l+-e+"D":e>0&&(r+=l+e+"C"),t<0?r+=l+-t+"A":t>0&&(r+=l+t+"B"),r};c.cursorUp=(e=1)=>l+e+"A";c.cursorDown=(e=1)=>l+e+"B";c.cursorForward=(e=1)=>l+e+"C";c.cursorBackward=(e=1)=>l+e+"D";c.cursorLeft=l+"G";c.cursorSavePosition=ne?"\x1B7":l+"s";c.cursorRestorePosition=ne?"\x1B8":l+"u";c.cursorGetPosition=l+"6n";c.cursorNextLine=l+"E";c.cursorPrevLine=l+"F";c.cursorHide=l+"?25l";c.cursorShow=l+"?25h";c.eraseLines=e=>{let t="";for(let r=0;r<e;r++)t+=c.eraseLine+(r<e-1?c.cursorUp():"");return e&&(t+=c.cursorLeft),t};c.eraseEndLine=l+"K";c.eraseStartLine=l+"1K";c.eraseLine=l+"2K";c.eraseDown=l+"J";c.eraseUp=l+"1J";c.eraseScreen=l+"2J";c.scrollUp=l+"S";c.scrollDown=l+"T";c.clearScreen="\x1Bc";c.clearTerminal=process.platform==="win32"?`${c.eraseScreen}${l}0f`:`${c.eraseScreen}${l}3J${l}H`;c.beep=I;c.link=(e,t)=>[P,"8",V,V,t,I,e,P,"8",V,V,I].join("");c.image=(e,t={})=>{let r=`${P}1337;File=inline=1`;return t.width&&(r+=`;width=${t.width}`),t.height&&(r+=`;height=${t.height}`),t.preserveAspectRatio===!1&&(r+=";preserveAspectRatio=0"),r+":"+e.toString("base64")+I};c.iTerm={setCwd:(e=process.cwd())=>`${P}50;CurrentDir=${e}${I}`,annotation:(e,t={})=>{let r=`${P}1337;`,s=typeof t.x<"u",n=typeof t.y<"u";if((s||n)&&!(s&&n&&typeof t.length<"u"))throw new Error("`x`, `y` and `length` must be defined when `x` or `y` is defined");return e=e.replace(/\|/g,""),r+=t.isHidden?"AddHiddenAnnotation=":"AddAnnotation=",t.length>0?r+=(s?[e,t.length,t.x,t.y]:[t.length,e]).join("|"):r+=e,r+I}};var se=c;var B=C(pe(),1);function E(e,t,{target:r="stdout",...s}={}){return B.default[r]?se.link(e,t):s.fallback===!1?e:typeof s.fallback=="function"?s.fallback(e,t):`${e} (\u200B${t}\u200B)`}E.isSupported=B.default.stdout;E.stderr=(e,t,r={})=>E(e,t,{target:"stderr",...r});E.stderr.isSupported=B.default.stderr;var J="1.0.53";var A=C(require("@simon_he/colorize")),z=require("lazy-js-utils");var X=console.log;function me(e){let{status:t}=(0,z.jsShell)("gum -v","pipe");if(t!==0){X((0,A.default)({color:"blue",text:e?"\u6B63\u5728\u4E3A\u60A8\u5B89\u88C5gum...":"install gum..."}));let{status:r}=(0,z.jsShell)("brew install gum");if(r!==0){let{status:s}=(0,z.jsShell)(`sudo mkdir -p /etc/apt/keyrings
|
|
2
2
|
curl -fsSL https://repo.charm.sh/apt/gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/charm.gpg
|
|
3
3
|
echo "deb [signed-by=/etc/apt/keyrings/charm.gpg] https://repo.charm.sh/apt/ * *" | sudo tee /etc/apt/sources.list.d/charm.list
|
|
4
|
-
sudo apt update && sudo apt install gum`);if(s!==0){let n=E(e?"gum\u5B98\u7F51\u94FE\u63A5":"the official website of gum","https://github.com/charmbracelet/gum#installation");return
|
|
4
|
+
sudo apt update && sudo apt install gum`);if(s!==0){let n=E(e?"gum\u5B98\u7F51\u94FE\u63A5":"the official website of gum","https://github.com/charmbracelet/gum#installation");return X((0,A.default)({color:"red",text:`${e?"gum\u5B89\u88C5\u5931\u8D25,\u4F60\u53EF\u4EE5\u81EA\u884C\u4ECE\u4EE5\u4E0B\u94FE\u63A5\u5B89\u88C5":"gum install error, you can install it yourself through"} ${(0,A.default)({color:"yellow",text:n,bold:!0})}`}))}}X((0,A.default)({color:"green",text:e?"gum\u5B89\u88C5\u6210\u529F \u{1F389}":"gum install successfully \u{1F389}"}))}}var fe=C(require("fs/promises"));function de(e){return new Promise(t=>{fe.default.readFile(e,"utf-8").then(r=>{let s=[];for(let n of r.matchAll(/.PHONY:\s*([\w0-9\-]+)/g)){let a;if(!n||!(a=n[1]))continue;let h=new RegExp(`^${a}:[
|
|
5
5
|
\\s]*([^
|
|
6
|
-
\\\\;]+)`,"sm"),x=r.match(h);if(!x)continue;let
|
|
6
|
+
\\\\;]+)`,"sm"),x=r.match(h);if(!x)continue;let y=`${x[1].trim()}...`;s.push({name:a,detail:y})}t(s)}).catch(t)})}var Fe=require("yamljs"),_=[],k=null,f=console.log,ge="__ccommand__split",d=process.env.PI_Lang==="zh",G=130,He=d?"\u5DF2\u53D6\u6D88...":"Cancelled...",he=d?"\u5F53\u524D\u76EE\u5F55\u5E76\u672A\u627E\u5230package.json\u6587\u4EF6":"The current directory and not found package.json file";async function ke(e){me(d);let t=d?"\u5F53\u524D\u76EE\u5F55\u4E0D\u5B58\u5728\u4EFB\u4F55\u5B50\u76EE\u5F55":"The current directory does not have any subdirectories",r=d?"\u8FD0\u884C\u6210\u529F":"run successfully",s=d?"\u8FD0\u884C\u5931\u8D25":"run error",n=e?e.replace(/\s+/," ").split(" "):process.argv.slice(2);if(n[0]==="-v"||n[0]==="--version")return f((0,u.default)({text:d?`ccommand \u5F53\u524D\u7248\u672C: ${J}`:`ccommand Version: ${J}`,color:"green"}));if(n[0]==="-h"||n[0]==="--help"){let i=E(d?"\u6253\u5F00\u4E00\u4E2A\u65B0\u7684\u95EE\u9898":"open an issue","https://github.com/Simon-He95/ccommand/issues"),o=E(d?"\u2728\u5E2E\u52A9\u70B9\u4E00\u4E2A\u661F\u661F":"\u2728star it","https://github.com/Simon-He95/ccommand");return f((0,u.default)({color:"white",text:`
|
|
7
7
|
${(0,u.default)({bold:!0,text:"Common Commands:",bgColor:"blue"})}
|
|
8
8
|
${(0,u.default)({text:`- ccommand -v \u67E5\u770B\u5F53\u524D\u7248\u672C
|
|
9
9
|
- ccommand -help \u67E5\u770B\u5E2E\u52A9
|
|
@@ -11,12 +11,12 @@
|
|
|
11
11
|
- ccommand find \u67E5\u627E\u5F53\u524Dworkspace\u7684\u6240\u6709\u76EE\u5F55
|
|
12
12
|
`,color:"cyan"})}
|
|
13
13
|
If you encounter any problems, you can ${(0,u.default)({color:"magenta",text:i})}.
|
|
14
|
-
If you like it, please ${(0,u.default)({text:o,bold:!0,color:"cyan"})} `}))}let a;try{a=await(0,p.getPkgTool)()}catch{if(await
|
|
15
|
-
`)}" | gum filter --placeholder=" \u{1F914}\u8BF7\u9009\u62E9\u4E00\u4E2A\u8981\u6267\u884C\u7684\u6307\u4EE4"`,"pipe");if(b===G)return F();(0,p.jsShell)(`make ${
|
|
16
|
-
${
|
|
17
|
-
command '${R}' ${s} \u274C`}));function Q(i){return
|
|
18
|
-
prun '${i}${o?` ${o}`:""}' ${r} \u{1F389}`}))):
|
|
19
|
-
command ${(0,u.default)({bold:!0,color:"cyan",text:`'${i||n[0]}${o?` ${o}`:""}'`})} ${s} \u274C`}))}}async function N(e){if(k)return k;let t="";try{t=e==="pnpm"?await
|
|
14
|
+
If you like it, please ${(0,u.default)({text:o,bold:!0,color:"cyan"})} `}))}let a;try{a=await(0,p.getPkgTool)()}catch{try{if(await S.default.readFile(Y.default.resolve(process.cwd(),"./Makefile"),"utf-8")){let $=await de("./Makefile"),{result:O,status:b}=(0,p.jsShell)(`echo "${$.map(L=>L.name).join(`
|
|
15
|
+
`)}" | gum filter --placeholder=" \u{1F914}\u8BF7\u9009\u62E9\u4E00\u4E2A\u8981\u6267\u884C\u7684\u6307\u4EE4"`,"pipe");if(b===G)return F();(0,p.jsShell)(`make ${O}`),process.exit()}else return f((0,u.default)({color:"red",text:he}))}catch{return f((0,u.default)({color:"red",text:he}))}}let[h,x,y]=Ve(n),g=h,T;if(n[0]==="find"){if(x)await N(a),g=_.filter(i=>i.includes(x))[0];else if(a==="yarn"){if(await N(a),!_.length)return f((0,u.default)({color:"yellow",text:t}));let{result:i,status:o}=(0,p.jsShell)(`echo ${_.join(",")} | sed "s/,/\\n/g" | gum filter --placeholder=" \u{1F914}${d?"\u8BF7\u9009\u62E9\u4E00\u4E2A\u8981\u6267\u884C\u7684\u76EE\u5F55":"Please select a directory to execute"}"`,"pipe");if(g=i,o===G)return F()}else if(a==="pnpm"){if(await N(a),!_.length)return f((0,u.default)({color:"yellow",text:t}));let{result:i,status:o}=(0,p.jsShell)(`echo ${_.join(",")} | sed "s/,/\\n/g" | gum filter --placeholder=" \u{1F914}${d?"\u8BF7\u9009\u62E9\u4E00\u4E2A\u8981\u6267\u884C\u7684\u76EE\u5F55":"Please select a directory to execute"}"`,"pipe");if(o===G)return F();g=i.trim()}else return f((0,u.default)({color:"red",text:d?"find\u6307\u4EE4\u53EA\u80FD\u652F\u6301\u5728yarn\u6216pnpm\u7684monorepo\u6A21\u5F0F\u4E0B\u4F7F\u7528":"find command only support yarn or pnpm"}));T=await Z()}else{if(T=await Z(),h&&k&&!k[h]||!k)try{let i=(await(0,p.getPkg)("./package.json")||{})?.scripts;if(i&&i[n[0]]){f((0,u.default)({text:`${d?"ccommand\u6B63\u5728\u6267\u884C":"ccommand is executing"} ${(0,u.default)({color:"cyan",text:`'${n[0]}'`})} \u{1F914} `,color:"yellow"})),ee(n[0],n.slice(1).join(" ")),setTimeout(()=>{(0,p.jsShell)("zsh")},10);return}else if(i&&h){let o=ze(i,n[0]),$=n.slice(1).join(" ");ee(o,$),setTimeout(()=>{(0,p.jsShell)("zsh")},10);return}}catch{}k&&!k[n[0]]&&(f((0,u.default)({color:"red",text:`"${n[0]}" ${d?"\u5728\u5DE5\u4F5C\u533A\u3001\u5F53\u524D\u76EE\u5F55\u4E2D\u627E\u4E0D\u5230\u4EFB\u4F55\u53EF\u6267\u884C\u7684\u811A\u672C,\u8BF7\u68C0\u67E5":"is not found in workspace, current directory or current scripts, please check"}`})),process.exit())}if(!T)return f((0,u.default)({color:"red",text:d?"\u627E\u4E0D\u5230\u4EFB\u4F55\u53EF\u6267\u884C\u811A\u672C":"No scripts found"}));let M=[],R="";if(!x||n[0]==="find"&&(!n[2]||n[2].startsWith("--"))){let i=Object.keys(T).reduce((O,b)=>{let L=T[b];return M.push(b),O+=`"${b}: ${L.replace(/\"/g,"'")}"${ge}`,O},""),{result:o,status:$}=(0,p.jsShell)(`echo ${i} | sed "s/${ge}/\\n/g" | gum filter --placeholder=" \u{1F914}\u8BF7\u9009\u62E9\u4E00\u4E2A\u8981\u6267\u884C\u7684\u6307\u4EE4"`,"pipe");if($===G)return F();R=o.substring(0,o.indexOf(": "))}if(!x&&!R)return F();let[xe,Re]=await Ee(),{status:be}=await(0,p.jsShell)(xe);if(be===0)return setTimeout(()=>{(0,p.jsShell)("zsh")},10),f((0,u.default)({color:"green",text:`
|
|
16
|
+
${Re} \u{1F389}`}));f((0,u.default)({color:"red",text:`
|
|
17
|
+
command '${R}' ${s} \u274C`}));function Q(i){return M.find(o=>o===i)??M.find(o=>i.startsWith(o))}async function Ee(){let i="",o="",$=a!=="yarn";a==="npm"?(o=y?` -- ${y}`:"",i=g?` --prefix ${g} `:" "):a==="pnpm"?(o=y?` ${y}`:"",i=g?` --filter ${g} `:" "):a==="yarn"?(o=y?` ${y}`:"",i=g?` workspace ${g} `:" "):a==="bun"&&(o=y?` ${y}`:"",i="");let O="",b="";if(o&&!o.startsWith(" --")){let te=o.split(" ").filter(Boolean);O=te[0],o=te.slice(1).join(" ")}let L=`${a}${$?" run":" "}${i} ${O||(R?Q(R)||R:x)} ${Te(o)?`-- ${o}`:o}`;R=`${O||(R?Q(R):x)}`,n[0]==="find"?b=`pfind ${g} ${R} ${o}`.replace(/\s+/g," ").trim():b=`prun ${R} ${o}`.replace(/\s+/g," ").trim(),await ye(b);let H=b.split(" "),Oe=H.slice(-1)[0];H[H.length-1]=`'${Oe}'`;let je=H.join(" ");return[L,je]}async function Z(){try{if(!g||a==="bun"||a==="npm")return(await(0,p.getPkg)("./package.json"))?.scripts;if(a==="pnpm")return(await N(a))[g]||(await(0,p.getPkg)(`${g}/package.json`))?.scripts;if(a==="yarn")return(await N(a))[g]||(await(0,p.getPkg)(`${g}/package.json`))?.scripts}catch{}}function Te(i){return n[0]==="find",n[1]&&i}async function ee(i,o){let $;switch(i&&n[0]!==i&&f((0,u.default)({text:`\u{1F914} ${(0,u.default)({text:`'${n[0]}'`,color:"cyan"})} ${d?"\u81EA\u52A8\u7684\u4E3A\u60A8\u5339\u914D\u6210":"automatically match for you to"} ${(0,u.default)({text:`'${i}${o?` ${o}`:""}'`,color:"cyan"})} `,color:"yellow"})),a){case"npm":{$=(0,p.jsShell)(`npm run ${i}${o?` -- ${o}`:""}`).status;break}case"pnpm":{$=(0,p.jsShell)(`pnpm run ${i}${o?` ${o}`:""}`).status;break}case"yarn":{$=(0,p.jsShell)(`yarn ${i}${o?` ${o}`:""}`).status;break}case"bun":{$=(0,p.jsShell)(`bun run ${i} ${o}`).status;break}}return $===0?(await ye(`prun ${i}${o?` ${o}`:""}`),f((0,u.default)({color:"green",text:`
|
|
18
|
+
prun '${i}${o?` ${o}`:""}' ${r} \u{1F389}`}))):f((0,u.default)({color:"red",text:`
|
|
19
|
+
command ${(0,u.default)({bold:!0,color:"cyan",text:`'${i||n[0]}${o?` ${o}`:""}'`})} ${s} \u274C`}))}}async function N(e){if(k)return k;let t="";try{t=e==="pnpm"?await S.default.readFile(Y.default.resolve(process.cwd(),"pnpm-workspace.yaml"),"utf-8"):await S.default.readFile(Y.default.resolve(process.cwd(),"package.json"),"utf-8")}catch{}let r;if(e==="pnpm")r=Fe.parse(t)?.packages||[];else{let s=JSON.parse(t)?.workspaces;(0,p.isPlainObject)(s)?r=s?.packages:r=s||[]}return k=await Be(r)||{},_=Object.keys(k).filter(s=>k[s]&&Object.keys(k[s]).length),k}function Ve(e){let t=e[0];return t?t.startsWith("--")?["","",e.join(" ")]:e[1]&&e[1].startsWith("--")?[t,"",e.slice(1).join(" ")]:[t,e[1],e.slice(2).join(" ")]:["","",""]}async function Be(e){if(!e.length)return;let t=await(0,we.default)(e.map(r=>`${r}/package.json`),{dot:!0,ignore:["**/node_modules/**"]});return Promise.all(t.map(async r=>{let s=await(0,p.getPkg)(r);if(!s)return;let{name:n,scripts:a}=s;return{name:n,scripts:a}})).then(r=>r.reduce((s,n)=>{let{name:a,scripts:h}=n;return!a||!h||(s[a]=h),s},{}))}function ze(e,t){let r=Object.keys(e),s=r.find(n=>n.startsWith(t));if(s)return s;try{let n=new RegExp(t.split("").join("[_-\\w$.:]*"));return r.find(a=>n.test(a))}catch(n){f((0,u.default)({text:`${d?"\u6B63\u5219\u9519\u8BEF":"RegExp error"}: ${n}`,color:"red"})),process.exit(1)}}function F(){return f((0,u.default)({color:"yellow",text:He})),process.exit()}async function ye(e){f((0,u.default)({text:`${d?"\u5FEB\u6377\u6307\u4EE4":"shortcut command"}: ${e}`,color:"blue",bold:!0}));let t=`${process.env.HOME}/.zsh_history`;try{if(!(0,$e.existsSync)(t))return;let r=await S.default.readFile(t,"utf8"),n=new Date().getTime()/1e3,a=`${r}: ${n.toFixed(0)}:0;${e}
|
|
20
20
|
`,h=[];a.split(`
|
|
21
|
-
`).forEach(
|
|
22
|
-
`);await
|
|
21
|
+
`).forEach(y=>{let g=y.split(";").slice(1).join(";"),T=h.findIndex(M=>M.split(";").slice(1).join(";")===g);T!==-1&&h.splice(T,1),h.push(y)});let x=h.join(`
|
|
22
|
+
`);await S.default.writeFile(t,x)}catch{}}ke();
|
package/dist/index.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var Ie=Object.create;var V=Object.defineProperty;var ve=Object.getOwnPropertyDescriptor;var _e=Object.getOwnPropertyNames;var Se=Object.getPrototypeOf,Me=Object.prototype.hasOwnProperty;var W=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Le=(e,t)=>{for(var r in t)V(e,r,{get:t[r],enumerable:!0})},ne=(e,t,r,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of _e(t))!Me.call(e,n)&&n!==r&&V(e,n,{get:()=>t[n],enumerable:!(s=ve(t,n))||s.enumerable});return e};var C=(e,t,r)=>(r=e!=null?Ie(Se(e)):{},ne(t||!e||!e.__esModule?V(r,"default",{value:e,enumerable:!0}):r,e)),Pe=e=>ne(V({},"__esModule",{value:!0}),e);var q=W((Ke,ie)=>{"use strict";ie.exports=(e,t=process.argv)=>{let r=e.startsWith("-")?"":e.length===1?"-":"--",s=t.indexOf(r+e),n=t.indexOf("--");return s!==-1&&(n===-1||s<n)}});var le=W((Ue,ae)=>{"use strict";var Ae=require("os"),ce=require("tty"),w=q(),{env:m}=process,j;w("no-color")||w("no-colors")||w("color=false")||w("color=never")?j=0:(w("color")||w("colors")||w("color=true")||w("color=always"))&&(j=1);"FORCE_COLOR"in m&&(m.FORCE_COLOR==="true"?j=1:m.FORCE_COLOR==="false"?j=0:j=m.FORCE_COLOR.length===0?1:Math.min(parseInt(m.FORCE_COLOR,10),3));function K(e){return e===0?!1:{level:e,hasBasic:!0,has256:e>=2,has16m:e>=3}}function U(e,t){if(j===0)return 0;if(w("color=16m")||w("color=full")||w("color=truecolor"))return 3;if(w("color=256"))return 2;if(e&&!t&&j===void 0)return 0;let r=j||0;if(m.TERM==="dumb")return r;if(process.platform==="win32"){let s=Ae.release().split(".");return Number(s[0])>=10&&Number(s[2])>=10586?Number(s[2])>=14931?3:2:1}if("CI"in m)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","GITHUB_ACTIONS","BUILDKITE"].some(s=>s in m)||m.CI_NAME==="codeship"?1:r;if("TEAMCITY_VERSION"in m)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(m.TEAMCITY_VERSION)?1:0;if(m.COLORTERM==="truecolor")return 3;if("TERM_PROGRAM"in m){let s=parseInt((m.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(m.TERM_PROGRAM){case"iTerm.app":return s>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(m.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(m.TERM)||"COLORTERM"in m?1:r}function Ne(e){let t=U(e,e&&e.isTTY);return K(t)}ae.exports={supportsColor:Ne,stdout:K(U(!0,ce.isatty(1))),stderr:K(U(!0,ce.isatty(2)))}});var me=W((Je,pe)=>{"use strict";var Fe=le(),v=q();function ue(e){if(/^\d{3,4}$/.test(e)){let r=/(\d{1,2})(\d{2})/.exec(e);return{major:0,minor:parseInt(r[1],10),patch:parseInt(r[2],10)}}let t=(e||"").split(".").map(r=>parseInt(r,10));return{major:t[0],minor:t[1],patch:t[2]}}function J(e){let{env:t}=process;if("FORCE_HYPERLINK"in t)return!(t.FORCE_HYPERLINK.length>0&&parseInt(t.FORCE_HYPERLINK,10)===0);if(v("no-hyperlink")||v("no-hyperlinks")||v("hyperlink=false")||v("hyperlink=never"))return!1;if(v("hyperlink=true")||v("hyperlink=always")||"NETLIFY"in t)return!0;if(!Fe.supportsColor(e)||e&&!e.isTTY||process.platform==="win32"||"CI"in t||"TEAMCITY_VERSION"in t)return!1;if("TERM_PROGRAM"in t){let r=ue(t.TERM_PROGRAM_VERSION);switch(t.TERM_PROGRAM){case"iTerm.app":return r.major===3?r.minor>=1:r.major>3;case"WezTerm":return r.major>=20200620;case"vscode":return r.major>1||r.major===1&&r.minor>=72}}if("VTE_VERSION"in t){if(t.VTE_VERSION==="0.50.0")return!1;let r=ue(t.VTE_VERSION);return r.major>0||r.minor>=50}return!1}pe.exports={supportsHyperlink:J,stdout:J(process.stdout),stderr:J(process.stderr)}});var De={};Le(De,{ccommand:()=>xe});module.exports=Pe(De);var S=C(require("fs/promises")),we=require("fs"),D=C(require("path")),p=require("lazy-js-utils"),ke=C(require("fast-glob")),u=C(require("@simon_he/colorize"));var l="\x1B[",P="\x1B]",I="\x07",B=";",se=process.env.TERM_PROGRAM==="Apple_Terminal",c={};c.cursorTo=(e,t)=>{if(typeof e!="number")throw new TypeError("The `x` argument is required");return typeof t!="number"?l+(e+1)+"G":l+(t+1)+";"+(e+1)+"H"};c.cursorMove=(e,t)=>{if(typeof e!="number")throw new TypeError("The `x` argument is required");let r="";return e<0?r+=l+-e+"D":e>0&&(r+=l+e+"C"),t<0?r+=l+-t+"A":t>0&&(r+=l+t+"B"),r};c.cursorUp=(e=1)=>l+e+"A";c.cursorDown=(e=1)=>l+e+"B";c.cursorForward=(e=1)=>l+e+"C";c.cursorBackward=(e=1)=>l+e+"D";c.cursorLeft=l+"G";c.cursorSavePosition=se?"\x1B7":l+"s";c.cursorRestorePosition=se?"\x1B8":l+"u";c.cursorGetPosition=l+"6n";c.cursorNextLine=l+"E";c.cursorPrevLine=l+"F";c.cursorHide=l+"?25l";c.cursorShow=l+"?25h";c.eraseLines=e=>{let t="";for(let r=0;r<e;r++)t+=c.eraseLine+(r<e-1?c.cursorUp():"");return e&&(t+=c.cursorLeft),t};c.eraseEndLine=l+"K";c.eraseStartLine=l+"1K";c.eraseLine=l+"2K";c.eraseDown=l+"J";c.eraseUp=l+"1J";c.eraseScreen=l+"2J";c.scrollUp=l+"S";c.scrollDown=l+"T";c.clearScreen="\x1Bc";c.clearTerminal=process.platform==="win32"?`${c.eraseScreen}${l}0f`:`${c.eraseScreen}${l}3J${l}H`;c.beep=I;c.link=(e,t)=>[P,"8",B,B,t,I,e,P,"8",B,B,I].join("");c.image=(e,t={})=>{let r=`${P}1337;File=inline=1`;return t.width&&(r+=`;width=${t.width}`),t.height&&(r+=`;height=${t.height}`),t.preserveAspectRatio===!1&&(r+=";preserveAspectRatio=0"),r+":"+e.toString("base64")+I};c.iTerm={setCwd:(e=process.cwd())=>`${P}50;CurrentDir=${e}${I}`,annotation:(e,t={})=>{let r=`${P}1337;`,s=typeof t.x<"u",n=typeof t.y<"u";if((s||n)&&!(s&&n&&typeof t.length<"u"))throw new Error("`x`, `y` and `length` must be defined when `x` or `y` is defined");return e=e.replace(/\|/g,""),r+=t.isHidden?"AddHiddenAnnotation=":"AddAnnotation=",t.length>0?r+=(s?[e,t.length,t.x,t.y]:[t.length,e]).join("|"):r+=e,r+I}};var oe=c;var z=C(me(),1);function E(e,t,{target:r="stdout",...s}={}){return z.default[r]?oe.link(e,t):s.fallback===!1?e:typeof s.fallback=="function"?s.fallback(e,t):`${e} (\u200B${t}\u200B)`}E.isSupported=z.default.stdout;E.stderr=(e,t,r={})=>E(e,t,{target:"stderr",...r});E.stderr.isSupported=z.default.stderr;var X="1.0.53";var A=C(require("@simon_he/colorize")),G=require("lazy-js-utils");var Q=console.log;function fe(e){let{status:t}=(0,G.jsShell)("gum -v","pipe");if(t!==0){Q((0,A.default)({color:"blue",text:e?"\u6B63\u5728\u4E3A\u60A8\u5B89\u88C5gum...":"install gum..."}));let{status:r}=(0,G.jsShell)("brew install gum");if(r!==0){let{status:s}=(0,G.jsShell)(`sudo mkdir -p /etc/apt/keyrings
|
|
2
2
|
curl -fsSL https://repo.charm.sh/apt/gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/charm.gpg
|
|
3
3
|
echo "deb [signed-by=/etc/apt/keyrings/charm.gpg] https://repo.charm.sh/apt/ * *" | sudo tee /etc/apt/sources.list.d/charm.list
|
|
4
|
-
sudo apt update && sudo apt install gum`);if(s!==0){let n=E(e?"gum\u5B98\u7F51\u94FE\u63A5":"the official website of gum","https://github.com/charmbracelet/gum#installation");return
|
|
4
|
+
sudo apt update && sudo apt install gum`);if(s!==0){let n=E(e?"gum\u5B98\u7F51\u94FE\u63A5":"the official website of gum","https://github.com/charmbracelet/gum#installation");return Q((0,A.default)({color:"red",text:`${e?"gum\u5B89\u88C5\u5931\u8D25,\u4F60\u53EF\u4EE5\u81EA\u884C\u4ECE\u4EE5\u4E0B\u94FE\u63A5\u5B89\u88C5":"gum install error, you can install it yourself through"} ${(0,A.default)({color:"yellow",text:n,bold:!0})}`}))}}Q((0,A.default)({color:"green",text:e?"gum\u5B89\u88C5\u6210\u529F \u{1F389}":"gum install successfully \u{1F389}"}))}}var de=C(require("fs/promises"));function ge(e){return new Promise(t=>{de.default.readFile(e,"utf-8").then(r=>{let s=[];for(let n of r.matchAll(/.PHONY:\s*([\w0-9\-]+)/g)){let a;if(!n||!(a=n[1]))continue;let h=new RegExp(`^${a}:[
|
|
5
5
|
\\s]*([^
|
|
6
|
-
\\\\;]+)`,"sm"),x=r.match(h);if(!x)continue;let
|
|
6
|
+
\\\\;]+)`,"sm"),x=r.match(h);if(!x)continue;let y=`${x[1].trim()}...`;s.push({name:a,detail:y})}t(s)}).catch(t)})}var Ve=require("yamljs"),_=[],k=null,f=console.log,he="__ccommand__split",d=process.env.PI_Lang==="zh",Y=130,Be=d?"\u5DF2\u53D6\u6D88...":"Cancelled...",ye=d?"\u5F53\u524D\u76EE\u5F55\u5E76\u672A\u627E\u5230package.json\u6587\u4EF6":"The current directory and not found package.json file";async function xe(e){fe(d);let t=d?"\u5F53\u524D\u76EE\u5F55\u4E0D\u5B58\u5728\u4EFB\u4F55\u5B50\u76EE\u5F55":"The current directory does not have any subdirectories",r=d?"\u8FD0\u884C\u6210\u529F":"run successfully",s=d?"\u8FD0\u884C\u5931\u8D25":"run error",n=e?e.replace(/\s+/," ").split(" "):process.argv.slice(2);if(n[0]==="-v"||n[0]==="--version")return f((0,u.default)({text:d?`ccommand \u5F53\u524D\u7248\u672C: ${X}`:`ccommand Version: ${X}`,color:"green"}));if(n[0]==="-h"||n[0]==="--help"){let i=E(d?"\u6253\u5F00\u4E00\u4E2A\u65B0\u7684\u95EE\u9898":"open an issue","https://github.com/Simon-He95/ccommand/issues"),o=E(d?"\u2728\u5E2E\u52A9\u70B9\u4E00\u4E2A\u661F\u661F":"\u2728star it","https://github.com/Simon-He95/ccommand");return f((0,u.default)({color:"white",text:`
|
|
7
7
|
${(0,u.default)({bold:!0,text:"Common Commands:",bgColor:"blue"})}
|
|
8
8
|
${(0,u.default)({text:`- ccommand -v \u67E5\u770B\u5F53\u524D\u7248\u672C
|
|
9
9
|
- ccommand -help \u67E5\u770B\u5E2E\u52A9
|
|
@@ -11,12 +11,12 @@
|
|
|
11
11
|
- ccommand find \u67E5\u627E\u5F53\u524Dworkspace\u7684\u6240\u6709\u76EE\u5F55
|
|
12
12
|
`,color:"cyan"})}
|
|
13
13
|
If you encounter any problems, you can ${(0,u.default)({color:"magenta",text:i})}.
|
|
14
|
-
If you like it, please ${(0,u.default)({text:o,bold:!0,color:"cyan"})} `}))}let a;try{a=await(0,p.getPkgTool)()}catch{if(await
|
|
15
|
-
`)}" | gum filter --placeholder=" \u{1F914}\u8BF7\u9009\u62E9\u4E00\u4E2A\u8981\u6267\u884C\u7684\u6307\u4EE4"`,"pipe");if(b===Y)return F();(0,p.jsShell)(`make ${
|
|
16
|
-
${
|
|
17
|
-
command '${R}' ${s} \u274C`}));function Z(i){return
|
|
18
|
-
prun '${i}${o?` ${o}`:""}' ${r} \u{1F389}`}))):
|
|
19
|
-
command ${(0,u.default)({bold:!0,color:"cyan",text:`'${i||n[0]}${o?` ${o}`:""}'`})} ${s} \u274C`}))}}async function N(e){if(k)return k;let t="";try{t=e==="pnpm"?await
|
|
14
|
+
If you like it, please ${(0,u.default)({text:o,bold:!0,color:"cyan"})} `}))}let a;try{a=await(0,p.getPkgTool)()}catch{try{if(await S.default.readFile(D.default.resolve(process.cwd(),"./Makefile"),"utf-8")){let $=await ge("./Makefile"),{result:O,status:b}=(0,p.jsShell)(`echo "${$.map(L=>L.name).join(`
|
|
15
|
+
`)}" | gum filter --placeholder=" \u{1F914}\u8BF7\u9009\u62E9\u4E00\u4E2A\u8981\u6267\u884C\u7684\u6307\u4EE4"`,"pipe");if(b===Y)return F();(0,p.jsShell)(`make ${O}`),process.exit()}else return f((0,u.default)({color:"red",text:ye}))}catch{return f((0,u.default)({color:"red",text:ye}))}}let[h,x,y]=ze(n),g=h,T;if(n[0]==="find"){if(x)await N(a),g=_.filter(i=>i.includes(x))[0];else if(a==="yarn"){if(await N(a),!_.length)return f((0,u.default)({color:"yellow",text:t}));let{result:i,status:o}=(0,p.jsShell)(`echo ${_.join(",")} | sed "s/,/\\n/g" | gum filter --placeholder=" \u{1F914}${d?"\u8BF7\u9009\u62E9\u4E00\u4E2A\u8981\u6267\u884C\u7684\u76EE\u5F55":"Please select a directory to execute"}"`,"pipe");if(g=i,o===Y)return F()}else if(a==="pnpm"){if(await N(a),!_.length)return f((0,u.default)({color:"yellow",text:t}));let{result:i,status:o}=(0,p.jsShell)(`echo ${_.join(",")} | sed "s/,/\\n/g" | gum filter --placeholder=" \u{1F914}${d?"\u8BF7\u9009\u62E9\u4E00\u4E2A\u8981\u6267\u884C\u7684\u76EE\u5F55":"Please select a directory to execute"}"`,"pipe");if(o===Y)return F();g=i.trim()}else return f((0,u.default)({color:"red",text:d?"find\u6307\u4EE4\u53EA\u80FD\u652F\u6301\u5728yarn\u6216pnpm\u7684monorepo\u6A21\u5F0F\u4E0B\u4F7F\u7528":"find command only support yarn or pnpm"}));T=await ee()}else{if(T=await ee(),h&&k&&!k[h]||!k)try{let i=(await(0,p.getPkg)("./package.json")||{})?.scripts;if(i&&i[n[0]]){f((0,u.default)({text:`${d?"ccommand\u6B63\u5728\u6267\u884C":"ccommand is executing"} ${(0,u.default)({color:"cyan",text:`'${n[0]}'`})} \u{1F914} `,color:"yellow"})),te(n[0],n.slice(1).join(" ")),setTimeout(()=>{(0,p.jsShell)("zsh")},10);return}else if(i&&h){let o=Ye(i,n[0]),$=n.slice(1).join(" ");te(o,$),setTimeout(()=>{(0,p.jsShell)("zsh")},10);return}}catch{}k&&!k[n[0]]&&(f((0,u.default)({color:"red",text:`"${n[0]}" ${d?"\u5728\u5DE5\u4F5C\u533A\u3001\u5F53\u524D\u76EE\u5F55\u4E2D\u627E\u4E0D\u5230\u4EFB\u4F55\u53EF\u6267\u884C\u7684\u811A\u672C,\u8BF7\u68C0\u67E5":"is not found in workspace, current directory or current scripts, please check"}`})),process.exit())}if(!T)return f((0,u.default)({color:"red",text:d?"\u627E\u4E0D\u5230\u4EFB\u4F55\u53EF\u6267\u884C\u811A\u672C":"No scripts found"}));let M=[],R="";if(!x||n[0]==="find"&&(!n[2]||n[2].startsWith("--"))){let i=Object.keys(T).reduce((O,b)=>{let L=T[b];return M.push(b),O+=`"${b}: ${L.replace(/\"/g,"'")}"${he}`,O},""),{result:o,status:$}=(0,p.jsShell)(`echo ${i} | sed "s/${he}/\\n/g" | gum filter --placeholder=" \u{1F914}\u8BF7\u9009\u62E9\u4E00\u4E2A\u8981\u6267\u884C\u7684\u6307\u4EE4"`,"pipe");if($===Y)return F();R=o.substring(0,o.indexOf(": "))}if(!x&&!R)return F();let[Re,be]=await Te(),{status:Ee}=await(0,p.jsShell)(Re);if(Ee===0)return setTimeout(()=>{(0,p.jsShell)("zsh")},10),f((0,u.default)({color:"green",text:`
|
|
16
|
+
${be} \u{1F389}`}));f((0,u.default)({color:"red",text:`
|
|
17
|
+
command '${R}' ${s} \u274C`}));function Z(i){return M.find(o=>o===i)??M.find(o=>i.startsWith(o))}async function Te(){let i="",o="",$=a!=="yarn";a==="npm"?(o=y?` -- ${y}`:"",i=g?` --prefix ${g} `:" "):a==="pnpm"?(o=y?` ${y}`:"",i=g?` --filter ${g} `:" "):a==="yarn"?(o=y?` ${y}`:"",i=g?` workspace ${g} `:" "):a==="bun"&&(o=y?` ${y}`:"",i="");let O="",b="";if(o&&!o.startsWith(" --")){let re=o.split(" ").filter(Boolean);O=re[0],o=re.slice(1).join(" ")}let L=`${a}${$?" run":" "}${i} ${O||(R?Z(R)||R:x)} ${Oe(o)?`-- ${o}`:o}`;R=`${O||(R?Z(R):x)}`,n[0]==="find"?b=`pfind ${g} ${R} ${o}`.replace(/\s+/g," ").trim():b=`prun ${R} ${o}`.replace(/\s+/g," ").trim(),await $e(b);let H=b.split(" "),je=H.slice(-1)[0];H[H.length-1]=`'${je}'`;let Ce=H.join(" ");return[L,Ce]}async function ee(){try{if(!g||a==="bun"||a==="npm")return(await(0,p.getPkg)("./package.json"))?.scripts;if(a==="pnpm")return(await N(a))[g]||(await(0,p.getPkg)(`${g}/package.json`))?.scripts;if(a==="yarn")return(await N(a))[g]||(await(0,p.getPkg)(`${g}/package.json`))?.scripts}catch{}}function Oe(i){return n[0]==="find",n[1]&&i}async function te(i,o){let $;switch(i&&n[0]!==i&&f((0,u.default)({text:`\u{1F914} ${(0,u.default)({text:`'${n[0]}'`,color:"cyan"})} ${d?"\u81EA\u52A8\u7684\u4E3A\u60A8\u5339\u914D\u6210":"automatically match for you to"} ${(0,u.default)({text:`'${i}${o?` ${o}`:""}'`,color:"cyan"})} `,color:"yellow"})),a){case"npm":{$=(0,p.jsShell)(`npm run ${i}${o?` -- ${o}`:""}`).status;break}case"pnpm":{$=(0,p.jsShell)(`pnpm run ${i}${o?` ${o}`:""}`).status;break}case"yarn":{$=(0,p.jsShell)(`yarn ${i}${o?` ${o}`:""}`).status;break}case"bun":{$=(0,p.jsShell)(`bun run ${i} ${o}`).status;break}}return $===0?(await $e(`prun ${i}${o?` ${o}`:""}`),f((0,u.default)({color:"green",text:`
|
|
18
|
+
prun '${i}${o?` ${o}`:""}' ${r} \u{1F389}`}))):f((0,u.default)({color:"red",text:`
|
|
19
|
+
command ${(0,u.default)({bold:!0,color:"cyan",text:`'${i||n[0]}${o?` ${o}`:""}'`})} ${s} \u274C`}))}}async function N(e){if(k)return k;let t="";try{t=e==="pnpm"?await S.default.readFile(D.default.resolve(process.cwd(),"pnpm-workspace.yaml"),"utf-8"):await S.default.readFile(D.default.resolve(process.cwd(),"package.json"),"utf-8")}catch{}let r;if(e==="pnpm")r=Ve.parse(t)?.packages||[];else{let s=JSON.parse(t)?.workspaces;(0,p.isPlainObject)(s)?r=s?.packages:r=s||[]}return k=await Ge(r)||{},_=Object.keys(k).filter(s=>k[s]&&Object.keys(k[s]).length),k}function ze(e){let t=e[0];return t?t.startsWith("--")?["","",e.join(" ")]:e[1]&&e[1].startsWith("--")?[t,"",e.slice(1).join(" ")]:[t,e[1],e.slice(2).join(" ")]:["","",""]}async function Ge(e){if(!e.length)return;let t=await(0,ke.default)(e.map(r=>`${r}/package.json`),{dot:!0,ignore:["**/node_modules/**"]});return Promise.all(t.map(async r=>{let s=await(0,p.getPkg)(r);if(!s)return;let{name:n,scripts:a}=s;return{name:n,scripts:a}})).then(r=>r.reduce((s,n)=>{let{name:a,scripts:h}=n;return!a||!h||(s[a]=h),s},{}))}function Ye(e,t){let r=Object.keys(e),s=r.find(n=>n.startsWith(t));if(s)return s;try{let n=new RegExp(t.split("").join("[_-\\w$.:]*"));return r.find(a=>n.test(a))}catch(n){f((0,u.default)({text:`${d?"\u6B63\u5219\u9519\u8BEF":"RegExp error"}: ${n}`,color:"red"})),process.exit(1)}}function F(){return f((0,u.default)({color:"yellow",text:Be})),process.exit()}async function $e(e){f((0,u.default)({text:`${d?"\u5FEB\u6377\u6307\u4EE4":"shortcut command"}: ${e}`,color:"blue",bold:!0}));let t=`${process.env.HOME}/.zsh_history`;try{if(!(0,we.existsSync)(t))return;let r=await S.default.readFile(t,"utf8"),n=new Date().getTime()/1e3,a=`${r}: ${n.toFixed(0)}:0;${e}
|
|
20
20
|
`,h=[];a.split(`
|
|
21
|
-
`).forEach(
|
|
22
|
-
`);await
|
|
21
|
+
`).forEach(y=>{let g=y.split(";").slice(1).join(";"),T=h.findIndex(M=>M.split(";").slice(1).join(";")===g);T!==-1&&h.splice(T,1),h.push(y)});let x=h.join(`
|
|
22
|
+
`);await S.default.writeFile(t,x)}catch{}}0&&(module.exports={ccommand});
|