UNPKG

@johnf/react-native-owl

Version:
49 lines (47 loc) 2.3 kB
"use strict"; import path from 'path'; import execa from 'execa'; import { Logger } from "../logger.js"; import { getConfig } from "./config.js"; export const ENTRY_FILE = './node_modules/react-native-owl/lib/commonjs/client/index.app.js'; export const buildIOS = async (config, logger) => { const buildCommand = config.ios?.buildCommand ? [config.ios?.buildCommand] : [`xcodebuild`, `-workspace ${config.ios?.workspace}`, `-scheme ${config.ios?.scheme?.split(' ').join('\\ ')}`, `-configuration ${config.ios?.configuration}`, `-sdk iphonesimulator`, `-derivedDataPath ios/build`]; if (!config.ios?.buildCommand && config.ios?.quiet) { buildCommand.push('-quiet'); } logger.info(`[OWL - CLI] Building the app with: ${buildCommand.join(' ')}.`); await execa.command(buildCommand.join(' '), { stdio: 'inherit', env: { ENTRY_FILE } }); }; export const buildAndroid = async (config, logger) => { const buildCommand = config.android?.buildCommand ? [config.android?.buildCommand] : [`./gradlew`, config.android?.buildType === 'Debug' ? `assembleDebug` : 'assembleRelease', '--console plain']; if (!config.android?.buildCommand && config.android?.quiet) { buildCommand.push('--quiet'); } // Add a project environmental to tell build.gradle to use a specific Android Manifest that allows WebSocket usage. // (https://docs.gradle.org/current/userguide/command_line_interface.html#sec:environment_options) buildCommand.push('-PisOwlBuild=true'); const cwd = config.android?.buildCommand ? undefined : path.join(process.cwd(), 'android'); logger.info(`[OWL - CLI] Building the app with: ${buildCommand.join(' ')}.`); await execa.command(buildCommand.join(' '), { stdio: 'inherit', cwd, env: { ENTRY_FILE } }); }; export const buildHandler = async args => { const config = await getConfig(args.config); const logger = new Logger(config.debug); const buildProject = args.platform === 'ios' ? buildIOS : buildAndroid; logger.print(`[OWL - CLI] Building the app on ${args.platform} platform.`); logger.info(`[OWL - CLI] Using the config file ${args.config}.`); await buildProject(config, logger); logger.info(`[OWL - CLI] Successfully built for the ${args.platform} platform.`); }; //# sourceMappingURL=build.js.map