ReviewOS

also looking at this

craft-native/craft

fix(android): recover remote loads after connectivity returns

#265
Merged glennmichael123 wants to merge codex/android-load-failure-fallback into main
4 files +130 -11
packages/android/scripts/compile-templates.tsmodified+14-9
Changes to packages/android/scripts/compile-templates.ts
@@ -1,4 +1,4 @@
1import { mkdirSync, mkdtempSync, readFileSync, rmSync, writeFileSync } from 'node:fs'
1import { mkdirSync, mkdtempSync, readFileSync, readdirSync, rmSync, writeFileSync } from 'node:fs'
22import { tmpdir } from 'node:os'
33import { dirname, join } from 'node:path'
44import { fileURLToPath } from 'node:url'
@@ -13,10 +13,13 @@ interface CompileFixture {
1313
1414const scriptDirectory = dirname(fileURLToPath(import.meta.url))
1515const packageDirectory = dirname(scriptDirectory)
16const permissionTestTemplate = readFileSync(
17 join(packageDirectory, 'compile-fixtures/CraftPermissionPolicyTest.kt'),
18 'utf8',
19)
16const compileFixtureDirectory = join(packageDirectory, 'compile-fixtures')
17const compileTestTemplates = readdirSync(compileFixtureDirectory, { withFileTypes: true })
18 .filter(entry => entry.isFile() && entry.name.endsWith('Test.kt'))
19 .map(entry => ({
20 name: entry.name,
21 source: readFileSync(join(compileFixtureDirectory, entry.name), 'utf8'),
22 }))
2023const gradleExecutable = process.env.GRADLE_EXECUTABLE || 'gradle'
2124const keepProjects = process.argv.includes('--keep')
2225const workspace = mkdtempSync(join(tmpdir(), 'craft-android-templates-'))
@@ -92,10 +95,12 @@ try {
9295 fixture.packageName.replaceAll('.', '/'),
9396 )
9497 mkdirSync(testDirectory, { recursive: true })
95 writeFileSync(
96 join(testDirectory, 'CraftPermissionPolicyTest.kt'),
97 permissionTestTemplate.replaceAll('', fixture.packageName),
98 )
98 for (const testTemplate of compileTestTemplates) {
99 writeFileSync(
100 join(testDirectory, testTemplate.name),
101 testTemplate.source.replaceAll('', fixture.packageName),
102 )
103 }
99104
100105 console.log(`\nCompiling generated Android fixture: ${fixture.name}`)
101106 const result = Bun.spawnSync([