bugfixes
This commit is contained in:
parent
f1694be238
commit
c89fd2f3c6
local-cli
@ -43,6 +43,13 @@
|
||||
},
|
||||
"uploadApk": {
|
||||
},
|
||||
"packages": {
|
||||
"options": {
|
||||
"platform": {
|
||||
"hasValue": true
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
"publish": {
|
||||
"options": {
|
||||
@ -60,6 +67,21 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"versions": {
|
||||
"options": {
|
||||
"platform": {
|
||||
"hasValue": true
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
"update": {
|
||||
"options": {
|
||||
"platform": {
|
||||
"hasValue": true
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
"build": {
|
||||
"description": "Bundle javascript and copy assets."
|
||||
|
@ -54,8 +54,8 @@ export async function chooseApp(platform) {
|
||||
const list = await listApp(platform);
|
||||
|
||||
while (true) {
|
||||
const id = await question('Platform(ios/android):');
|
||||
const app = list.find(v=>v.id === id);
|
||||
const id = await question('Enter appId:');
|
||||
const app = list.find(v=>v.id === (id|0));
|
||||
if (app) {
|
||||
return app;
|
||||
}
|
||||
|
@ -7,11 +7,40 @@ const {
|
||||
post,
|
||||
uploadFile,
|
||||
} = require('./api');
|
||||
import { question } from './utils';
|
||||
|
||||
import { checkPlatform, getSelectedApp } from './app';
|
||||
|
||||
import {getIPAVersion, getApkVersion} from './utils';
|
||||
|
||||
export async function listPackage(appId){
|
||||
const {data} = await get(`/app/${appId}/package/list?limit=1000`);
|
||||
for (const pkg of data) {
|
||||
const {version} = pkg;
|
||||
let versionInfo = '';
|
||||
if (version) {
|
||||
versionInfo = ` - ${version.id} ${version.hash.slice(0, 8)} ${version.name}`;
|
||||
} else {
|
||||
versionInfo = ' (newest)';
|
||||
}
|
||||
console.log(`${pkg.id}) ${pkg.name}(${pkg.status})${versionInfo}`);
|
||||
}
|
||||
console.log(`\nTotal ${data.length} packages.`);
|
||||
return data;
|
||||
}
|
||||
|
||||
export async function choosePackage(appId) {
|
||||
const list = await listPackage(appId);
|
||||
|
||||
while (true) {
|
||||
const id = await question('Enter packageId:');
|
||||
const app = list.find(v=>v.id === (id|0));
|
||||
if (app) {
|
||||
return app;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export const commands = {
|
||||
uploadIpa: async function({args}) {
|
||||
const fn = args[0];
|
||||
@ -45,4 +74,9 @@ export const commands = {
|
||||
});
|
||||
console.log('Ok.');
|
||||
},
|
||||
packages: async function({options}) {
|
||||
const { platform } = options;
|
||||
const { appId } = await getSelectedApp(platform);
|
||||
await listPackage(appId);
|
||||
},
|
||||
};
|
||||
|
@ -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);
|
||||
}
|
||||
};
|
||||
|
Loading…
x
Reference in New Issue
Block a user