1
0
mirror of https://gitcode.com/gh_mirrors/re/react-native-pushy.git synced 2025-10-08 17:25:14 +08:00
Code Issues Packages Projects Releases Wiki Activity GitHub Gitee
This commit is contained in:
tdzl2003
2016-04-03 18:04:10 +08:00
parent f1694be238
commit c89fd2f3c6
4 changed files with 135 additions and 5 deletions

View File

@@ -7,8 +7,64 @@ const {
post,
uploadFile,
} = require('./api');
import { question } from './utils';
import { checkPlatform, getSelectedApp } from './app';
import { choosePackage } from './package';
async function showVersion(appId, offset) {
const { data, count } = await get(`/app/${appId}/version/list`);
console.log(`Offset ${offset}`);
for (const version of data) {
let packageInfo = version.packages.slice(0, 3).map(v=>v.name).join(', ');
const count = version.packages.length;
if (count > 3) {
packageInfo += `...and ${count-3} more`;
}
if (count === 0) {
packageInfo = `(no package)`;
} else {
packageInfo = `[${packageInfo}]`;
}
console.log(`${version.id}) ${version.hash.slice(0, 8)} ${version.name} ${packageInfo}`);
}
return data;
}
async function listVersions(appId) {
let offset = 0;
while (true) {
await showVersion(appId, offset);
const cmd = await question('page Up/page Down/Begin/Quit(U/D/B/Q)');
switch (cmd.toLowerCase()) {
case 'u': offset = Math.max(0, offset - 10); break;
case 'd': offset += 10; break;
case 'b': offset = 0; break;
case 'q': return;
}
}
}
async function chooseVersion(appId) {
let offset = 0;
while (true) {
const data = await showVersion(appId, offset);
const cmd = await question('Enter versionId or page Up/page Down/Begin(U/D/B)');
switch (cmd.toLowerCase()) {
case 'U': offset = Math.max(0, offset - 10); break;
case 'D': offset += 10; break;
case 'B': offset = 0; break;
default:
{
console.log(data.find(v=>v.id === (cmd | 0)));
const v = data.find(v=>v.id === (cmd | 0));
if (v) {
return v;
}
}
}
}
}
export const commands = {
publish: async function({args, options}) {
@@ -17,16 +73,34 @@ export const commands = {
if (!fn || !platform) {
throw new Error('Usage: pushy publish <ppkFile> --platform ios|android');
}
const {appId} = await getSelectedApp(platform);
const { appId } = await getSelectedApp(platform);
const {hash} = await uploadFile(fn);
const { hash } = await uploadFile(fn);
const {id} = await post(`/app/${appId}/version/create`, {
const { id } = await post(`/app/${appId}/version/create`, {
name,
hash,
description,
metaInfo,
});
console.log('Ok.');
const v = await question('Would you like to bind packages to this version?(Y/N)');
if (v.toLowerCase() === 'y') {
await this.update({args:[], options:{packageId: id, }});
}
},
versions: async function({options}) {
const { platform } = options;
const { appId } = await getSelectedApp(platform);
await listVersions(appId);
},
update: async function({args, options}) {
const { platform } = options;
const { appId } = await getSelectedApp(platform);
const version = await chooseVersion(appId);
const pkg = await choosePackage(appId);
console.log(version);
console.log(pkg);
}
};