|
| 1 | +const fs = require('fs'); |
| 2 | +const path = require('path'); |
| 3 | + |
| 4 | +function safeCopyFile(src, dest) { |
| 5 | + if (!fs.existsSync(src)) return false; |
| 6 | + fs.copyFileSync(src, dest); |
| 7 | + return true; |
| 8 | +} |
| 9 | + |
| 10 | +function run() { |
| 11 | + const repoRoot = path.join(__dirname, '..'); |
| 12 | + const androidDir = path.join(repoRoot, 'android'); |
| 13 | + const destDir = path.join(repoRoot, 'build', 'android'); |
| 14 | + |
| 15 | + if (!fs.existsSync(androidDir)) { |
| 16 | + console.warn('No android directory found to copy from:', androidDir); |
| 17 | + return; |
| 18 | + } |
| 19 | + |
| 20 | + fs.mkdirSync(destDir, { recursive: true }); |
| 21 | + |
| 22 | + // Copy wrapper scripts |
| 23 | + const gradlew = path.join(androidDir, 'gradlew'); |
| 24 | + const gradlewBat = path.join(androidDir, 'gradlew.bat'); |
| 25 | + if (safeCopyFile(gradlew, path.join(destDir, 'gradlew'))) { |
| 26 | + try { fs.chmodSync(path.join(destDir, 'gradlew'), 0o755); } catch (e) {} |
| 27 | + console.log('Copied gradlew to', destDir); |
| 28 | + } |
| 29 | + if (safeCopyFile(gradlewBat, path.join(destDir, 'gradlew.bat'))) { |
| 30 | + console.log('Copied gradlew.bat to', destDir); |
| 31 | + } |
| 32 | + |
| 33 | + // Copy gradle directory if present |
| 34 | + const gradleDir = path.join(androidDir, 'gradle'); |
| 35 | + const destGradleDir = path.join(destDir, 'gradle'); |
| 36 | + if (fs.existsSync(gradleDir)) { |
| 37 | + // Use recursive copy available in Node 16+ |
| 38 | + try { |
| 39 | + fs.cpSync(gradleDir, destGradleDir, { recursive: true }); |
| 40 | + console.log('Copied gradle/ to', destGradleDir); |
| 41 | + } catch (e) { |
| 42 | + console.warn('Failed to copy gradle directory:', e.message); |
| 43 | + } |
| 44 | + } |
| 45 | +} |
| 46 | + |
| 47 | +if (require.main === module) run(); |
| 48 | + |
| 49 | +module.exports = run; |
0 commit comments