2016-04-02 23:39:09 +08:00
|
|
|
/**
|
|
|
|
* Created by tdzl2003 on 4/2/16.
|
|
|
|
*/
|
|
|
|
|
|
|
|
const {
|
|
|
|
get,
|
|
|
|
post,
|
|
|
|
uploadFile,
|
|
|
|
} = require('./api');
|
2016-04-03 18:04:10 +08:00
|
|
|
import { question } from './utils';
|
2016-04-02 23:39:09 +08:00
|
|
|
|
|
|
|
import { checkPlatform, getSelectedApp } from './app';
|
|
|
|
|
|
|
|
import {getIPAVersion, getApkVersion} from './utils';
|
|
|
|
|
2016-04-03 18:04:10 +08:00
|
|
|
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;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2016-04-02 23:39:09 +08:00
|
|
|
export const commands = {
|
|
|
|
uploadIpa: async function({args}) {
|
|
|
|
const fn = args[0];
|
|
|
|
if (!fn) {
|
|
|
|
throw new Error('Usage: pushy uploadIpa <ipaFile>');
|
|
|
|
}
|
|
|
|
const name = await getIPAVersion(fn);
|
|
|
|
const {appId} = await getSelectedApp('ios');
|
|
|
|
|
|
|
|
const {hash} = await uploadFile(fn);
|
|
|
|
|
|
|
|
await post(`/app/${appId}/package/create`, {
|
|
|
|
name,
|
|
|
|
hash,
|
|
|
|
});
|
2016-04-03 15:09:21 +08:00
|
|
|
console.log('Ok.');
|
|
|
|
},
|
|
|
|
uploadApk: async function({args}) {
|
|
|
|
const fn = args[0];
|
|
|
|
if (!fn) {
|
2016-04-04 23:02:28 +08:00
|
|
|
throw new Error('Usage: pushy uploadApk <apkFile>');
|
2016-04-03 15:09:21 +08:00
|
|
|
}
|
|
|
|
const name = await getApkVersion(fn);
|
|
|
|
const {appId} = await getSelectedApp('android');
|
|
|
|
|
|
|
|
const {hash} = await uploadFile(fn);
|
|
|
|
|
|
|
|
await post(`/app/${appId}/package/create`, {
|
|
|
|
name,
|
|
|
|
hash,
|
|
|
|
});
|
|
|
|
console.log('Ok.');
|
|
|
|
},
|
2016-04-03 18:04:10 +08:00
|
|
|
packages: async function({options}) {
|
2016-04-05 20:07:23 +08:00
|
|
|
const platform = checkPlatform(options.platform || await question('Platform(ios/android):'));
|
2016-04-03 18:04:10 +08:00
|
|
|
const { appId } = await getSelectedApp(platform);
|
|
|
|
await listPackage(appId);
|
|
|
|
},
|
2016-04-02 23:39:09 +08:00
|
|
|
};
|