jj-cli
Version:
1 lines • 4 kB
JavaScript
;const t=require("../../untils/common"),{runSpawnCommand:e,runCommand:r,commandExec:a}=require("../../untils/terminal"),n=/\u001b\[((?:\d*;){0,5}\d*)m/g,p=require("../../untils/logs"),o=require("../../untils/fs"),i=require("../../untils/parse-config");function s(t){if(!t||"string"!=typeof t)return null;let e=(t=(t=(t=(t=(t=(t=(t=(t=(t=(t=(t=(t=(t=(t=t.replace(/\r\n/g,"")).replace(/\n/g,"")).replace(/\s+/g,"")).replace(/\─/g,"")).replace(/\┌/g,"")).replace(/\┬/g,"")).replace(/\┐/g,"")).replace(/\└/g,"")).replace(/\┴/g,"")).replace(/\┘/g,"")).replace(/\├/g,"")).replace(/\┼/g,"")).replace(/\┤/g,"")).replace(/\│/g,"--")).split("--")||[];return e=e.map((t=>t=t.replace(n,""))).filter((t=>!!t)),e&&e.length<=2||e.length%2!=0?null:(e.splice(0,2),e.reduce(((t,e,r,a)=>(r%2==0&&t.push(e),t)),[])||null)}async function l(){let t;try{p.logInfo("Get Apps List..."),t=await r("appcenter apps list")}catch(a){if("string"!=typeof a||!~a.indexOf("appcenter login"))throw a;try{p.logInfo("Please Login First"),await e("appcenter login")}catch(t){throw t}p.logInfo("Get Apps List Again..."),t=await r("appcenter apps list")}return t}async function u(t){let e;try{e=await r(`appcenter distribute groups list --app "${t}"`)}catch(t){throw t}return s(e)}async function c(e,r,a){let n=a;n||(n=r);let i=await o.findFiles(n,"android"===e?[".apk",".aab"]:".ipa",!0),s="ios"===e?"IPA,AAB":"APK";if(!i||0===i.length)throw new Error(`Cann't Find Any ${s} file`);const l=i.map((t=>t.shortPath+` [${t.size}]-(${t.time})`));var u;if(1===l.length)u=i[0],p.logFriendly(`Your App: ${u.fullPath}`);else{const e=await t.askSelectList(l,"File");if(!e)throw new Error("Your Choose Wrong!");u=i.find((t=>e.startsWith(t.shortPath))),p.logFriendly(`Your Choose: ${e}`)}return u}async function g(r,a,n,o,i){const s=await c(r,a,o);if(!s)throw new Error("packageApp Wrong!");let g=await l();if("string"!=typeof g||!~g.indexOf("\n"))throw new Error("Not found your app list");g=g.split("\n").map((t=>t.trim()));let f=await t.askSelectList(g,"App");if(!f)throw new Error("App Choose Wrong");if(p.logFriendly(`Your App: ${f}`),!~f.indexOf("/"))throw new Error("App Wrong");const h=f.split("/"),w=h[0],$=h[1];let d;try{d=await t.runTask("Get Groups...",(async()=>await u(f)))}catch(t){throw t}if(!d)throw new Error("Groups Not Found, Please make sure you have set Groups in your appcenter project ");let y=await t.askSelectList(d,"Groups");p.logFriendly(`Your Group: ${y}`);let m=`appcenter distribute groups publish --group "${y}" --file "${s.fullPath}" --app "${f}"`,A=`\n your user name: ${w}\n\n your app name: ${$}\n\n your group: ${y}\n\n your app path: ${s.fullPath}\n\n `;n&&(A+=`your notes: ${n}\n`,m=`${m} -r "${n}"`),p.blue(A);try{await t.runTask(`${r} uploading...`,(async()=>{await e(m),p.logInfo("~End~")}))}catch(t){throw t}const k=`https://install.appcenter.ms/users/${w}/apps/${$}/distribution_groups/${y}`;i||await t.openUrl(k)}exports.getApps=l,exports.findPackageApp=c;const f=async({platform:r,token:a,userName:n,appName:i,group:s,appPath:l,notes:u="",closedfolder:c=!1})=>{await t.isInstalled("appcenter")||p.logFatal("Not found \"appcenter\", Please install first: 'npm install -g appcenter-cli'. ref: https://www.npmjs.com/package/appcenter-cli"),a&&n&&i&&s&&l||p.logFatal("Missing token/userName/appName/group/appPath"),o.existsSync(l)||p.logFatal(`Cannot find your: ${l}`);let g=`\n your user name: ${n}\n\n your app name: ${i}\n\n your group: ${s}\n\n your app path: ${l}\n\n `;let f=`appcenter distribute groups publish --group "${s}" --file "${l}" --app "${`${n}/${i}`}" --token ${a}`;u&&(g+=`your notes: ${u}\n`,f=`${f} -r "${u}"`),p.blue(g);try{p.logFriendly("Begin upload app to appCenter"),await t.runTask(`${r} uploading...`,(async()=>{await e(f),p.logInfo("~End~")}))}catch(t){throw t}const h=`https://install.appcenter.ms/users/${n}/apps/${i}/distribution_groups/${s}`;c||await t.openUrl(h)};exports.uploadWithInfo=f,exports.uploadPlatform=g;