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}`)