39 lines
1.2 KiB
JavaScript
39 lines
1.2 KiB
JavaScript
import { cpSync, existsSync, mkdirSync, rmSync } from 'node:fs'
|
|
import path from 'node:path'
|
|
import { spawnSync } from 'node:child_process'
|
|
import { fileURLToPath } from 'node:url'
|
|
|
|
const __filename = fileURLToPath(import.meta.url)
|
|
const __dirname = path.dirname(__filename)
|
|
const rootDir = path.resolve(__dirname, '..')
|
|
const distDir = path.join(rootDir, 'dist', 'android')
|
|
const mavenDir = path.join(distDir, 'maven')
|
|
const wrapperDir = path.join(distDir, 'wrapper')
|
|
const wrapperTemplateDir = path.join(rootDir, 'wrappers', 'android')
|
|
|
|
function run(command, args) {
|
|
const executable = process.platform === 'win32' ? `${command}.cmd` : command
|
|
const result = spawnSync(executable, args, {
|
|
cwd: rootDir,
|
|
stdio: 'inherit',
|
|
})
|
|
|
|
if (result.status !== 0) {
|
|
process.exit(result.status ?? 1)
|
|
}
|
|
}
|
|
|
|
rmSync(distDir, { recursive: true, force: true })
|
|
mkdirSync(distDir, { recursive: true })
|
|
|
|
run('pnpx', ['expo-brownfield', 'build:android', '--release'])
|
|
|
|
if (!existsSync(mavenDir)) {
|
|
throw new Error(`Missing Android Maven output: ${mavenDir}`)
|
|
}
|
|
|
|
cpSync(wrapperTemplateDir, wrapperDir, { recursive: true })
|
|
|
|
console.log(`Android wrapper package ready: ${wrapperDir}`)
|
|
console.log(`Android Maven repo ready: ${mavenDir}`)
|