mirror of
https://gitcode.com/gh_mirrors/re/react-native-pushy.git
synced 2025-09-16 10:21:37 +08:00
bugfixes
This commit is contained in:
@@ -43,6 +43,13 @@
|
|||||||
},
|
},
|
||||||
"uploadApk": {
|
"uploadApk": {
|
||||||
},
|
},
|
||||||
|
"packages": {
|
||||||
|
"options": {
|
||||||
|
"platform": {
|
||||||
|
"hasValue": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
"publish": {
|
"publish": {
|
||||||
"options": {
|
"options": {
|
||||||
@@ -60,6 +67,21 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"versions": {
|
||||||
|
"options": {
|
||||||
|
"platform": {
|
||||||
|
"hasValue": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
"update": {
|
||||||
|
"options": {
|
||||||
|
"platform": {
|
||||||
|
"hasValue": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
"build": {
|
"build": {
|
||||||
"description": "Bundle javascript and copy assets."
|
"description": "Bundle javascript and copy assets."
|
||||||
|
@@ -54,8 +54,8 @@ export async function chooseApp(platform) {
|
|||||||
const list = await listApp(platform);
|
const list = await listApp(platform);
|
||||||
|
|
||||||
while (true) {
|
while (true) {
|
||||||
const id = await question('Platform(ios/android):');
|
const id = await question('Enter appId:');
|
||||||
const app = list.find(v=>v.id === id);
|
const app = list.find(v=>v.id === (id|0));
|
||||||
if (app) {
|
if (app) {
|
||||||
return app;
|
return app;
|
||||||
}
|
}
|
||||||
|
@@ -7,11 +7,40 @@ const {
|
|||||||
post,
|
post,
|
||||||
uploadFile,
|
uploadFile,
|
||||||
} = require('./api');
|
} = require('./api');
|
||||||
|
import { question } from './utils';
|
||||||
|
|
||||||
import { checkPlatform, getSelectedApp } from './app';
|
import { checkPlatform, getSelectedApp } from './app';
|
||||||
|
|
||||||
import {getIPAVersion, getApkVersion} from './utils';
|
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 = {
|
export const commands = {
|
||||||
uploadIpa: async function({args}) {
|
uploadIpa: async function({args}) {
|
||||||
const fn = args[0];
|
const fn = args[0];
|
||||||
@@ -45,4 +74,9 @@ export const commands = {
|
|||||||
});
|
});
|
||||||
console.log('Ok.');
|
console.log('Ok.');
|
||||||
},
|
},
|
||||||
|
packages: async function({options}) {
|
||||||
|
const { platform } = options;
|
||||||
|
const { appId } = await getSelectedApp(platform);
|
||||||
|
await listPackage(appId);
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
@@ -7,8 +7,64 @@ const {
|
|||||||
post,
|
post,
|
||||||
uploadFile,
|
uploadFile,
|
||||||
} = require('./api');
|
} = require('./api');
|
||||||
|
import { question } from './utils';
|
||||||
|
|
||||||
import { checkPlatform, getSelectedApp } from './app';
|
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 = {
|
export const commands = {
|
||||||
publish: async function({args, options}) {
|
publish: async function({args, options}) {
|
||||||
@@ -17,16 +73,34 @@ export const commands = {
|
|||||||
if (!fn || !platform) {
|
if (!fn || !platform) {
|
||||||
throw new Error('Usage: pushy publish <ppkFile> --platform ios|android');
|
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,
|
name,
|
||||||
hash,
|
hash,
|
||||||
description,
|
description,
|
||||||
metaInfo,
|
metaInfo,
|
||||||
});
|
});
|
||||||
console.log('Ok.');
|
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);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
Reference in New Issue
Block a user