@applicaster/zapplicaster-cli
Version:
CLI Tool for the zapp app and Quick Brick project
55 lines (43 loc) • 1.51 kB
JavaScript
const { resolve } = require("path");
const { runInShellAsync } = require("../../shell");
const logger = require("../../logger");
const { getApplicasterConfig, getPlatform } = require("../../settings");
async function buildApple({ version_id }, platform) {
const { zappApplePath } = getApplicasterConfig();
const appPath = platform === "ios" ? "ZappiOS" : "ZappTvOS";
if (zappApplePath) {
await runInShellAsync(`zapptool -vi ${version_id} -rn localhost:8081 -pu`, {
cwd: resolve(`${zappApplePath}/${appPath}`),
});
}
return true;
}
async function buildAndroid({ version_id }) {
const { zappAndroidPath } = getApplicasterConfig();
if (zappAndroidPath) {
await runInShellAsync(
`react_native_packager_root="http://localhost:8081" bundle exec rake prepare_workspace VERSION=${version_id}`, // eslint-disable-line max-len
{ cwd: resolve(zappAndroidPath) }
);
await runInShellAsync(
"./gradlew assembleDebug -PREACT_NATIVE_PACKAGER_ROOT=localhost:8081",
{ cwd: resolve(zappAndroidPath) }
);
}
return true;
}
async function buildMobileApp(configuration) {
logger.startStep("Building mobile app");
const { buildParams } = configuration;
const platform = getPlatform(buildParams);
switch (platform) {
case "ios":
case "tvos":
return await buildApple(buildParams, platform);
case "android":
return await buildAndroid(buildParams);
default:
return true;
}
}
module.exports = { buildMobileApp };