@ycmd/commands
Version:
LSK.js CLI Creds is the easiest way to manage GitHub / Gitlab secrets and credentials
14 lines (11 loc) • 3.39 kB
JavaScript
;
var util = require('util');
var path = require('path');
var fs = require('fs');
var child_process = require('child_process');
var ycmd = require('ycmd');
var err = require('@lsk4/err');
var U=Object.defineProperty;var n=(t,r)=>U(t,"name",{value:r,configurable:!0});var v=(t,r)=>()=>(t&&(r=t(t=0)),r);var I=(t,r)=>{for(var e in r)U(t,e,{get:r[e],enumerable:!0});};var p=v(()=>{});var T={};I(T,{run:()=>Q,watch:()=>K});async function O(t,r,e=""){await q(t).then(s=>Promise.all(s.map(u=>{let o=path.join(t,u);return k(o).then(i=>{if(i.isDirectory())return r(path.join(e,u),o,i),O(o,r,path.join(e,u))})})));}async function J(t,r){let e={};try{e[t]=fs.watch(t,{recursive:!0},r.bind(0,t));}catch(s){if(s.code!=="ERR_FEATURE_UNAVAILABLE_ON_PLATFORM")throw s;e[t]=fs.watch(t,r.bind(0,t)),await O(t,(u,o)=>{e[o]=fs.watch(o,r.bind(0,o));});}return e}async function K(t,r,e={}){let s=path.resolve(".",e.cwd||"."),u=new Set(t.map(d=>path.resolve(s,d)).filter(fs.existsSync)),o=["node_modules"].concat(e.ignore||[]).map(d=>new RegExp(d,"i")),i=0,f=new Set,c=new Map;async function a(){if(await r(),--i)return a()}n(a,"handle");async function m(d,Z,_){if(o.some(F=>F.test(_)))return;let g=path.join(d,_);if(!f.has(g)){if(i++)return i=1;e.clear&&console.clear(),f.add(g),await a(),f.delete(g);}}n(m,"onChange");let S,y,h;for(S of u){y=await J(S,m);for(h in y)c.set(h,y[h]);}e.eager&&await r();}async function Q(){try{let t=await V.apply(0,arguments);t.stdout&&process.stdout.write(t.stdout),t.stderr&&process.stderr.write(t.stderr);}catch(t){console.log(`[ERROR] ${t.message}`),t.stdout&&process.stdout.write(t.stdout),t.stderr&&process.stderr.write(t.stderr);}}var V,k,q,b=v(()=>{p();V=util.promisify(child_process.exec),k=util.promisify(fs.stat),q=util.promisify(fs.readdir);n(O,"walk");n(J,"setup");n(K,"watch");n(Q,"run");});p();p();var j=n(t=>t.default||t,"undefault"),z={a:!0,E:!0,z:!0,v:!0,progress:!1,"delete-after":!0,perms:!0},x=n(({excludeNodeModules:t=!0,excludeGit:r=!0}={})=>{let e=[".DS_Store",t?null:"node_modules",r?null:".git"];return t&&e.push("node_modules"),r&&e.push(".git"),e},"rsyncExcludes"),L=n(async(t,r,{log:e,...s}={})=>{let u=x(),o=j(await import('rsync')),i={...z,...s},f=new o().flags(i).source(t).destination(r).exclude(u);return e&&e.trace("[copy]",ycmd.getShortPath(t),"~>",ycmd.getShortPath(r)),e&&e.trace("[copy]",f.command()),f.output(c=>{let a=c.toString().trim();a.includes("total size is ")||a.startsWith("building file list")||a.startsWith("done")||e&&e.trace("[copy]","[progress]",c.toString().trim());},()=>{}),f.execute((c,a,m)=>{if(c)throw e&&e.error({code:a,err:c,cmd:m}),new err.Err(c,{code:a,cmd:m});e&&e.info("[copy]",ycmd.getShortPath(t),"~>",ycmd.getShortPath(r));})},"rsync");var X=n(t=>t.default||t,"undefault"),Y=n((t,r)=>{let e;return (...s)=>{clearTimeout(e),e=setTimeout(()=>t(...s),r);}},"debounce"),wt=n(async(t,r,{log:e,isWatch:s,isSilent:u,onExec:o}={})=>{let i=path.resolve(t.replace("~",process.env.HOME||"~")),f=path.resolve(r.replace("~",process.env.HOME||"~")),c=Y(async()=>{await L(`${i}/`,`${f}/`,{log:u?null:e}),o&&await o();},100);if(await c(),s){e&&e.debug("[watch]",ycmd.getShortPath(i),"~>",ycmd.getShortPath(f));let{watch:a}=X(await Promise.resolve().then(()=>(b(),T)));await a([i],()=>c(),{ignore:x()});}},"copyWatch");
exports.copyWatch = wt;
//# sourceMappingURL=out.js.map
//# sourceMappingURL=_copyWatch.js.map