react-native-network-state
Version:
Network Reachability instantly module for React Native
67 lines (61 loc) • 2.3 kB
JavaScript
//@flow
const chalk = require('chalk')
const fs = require('fs')
function replaceKeyword(content) {
content = content.split(/compile\s/).join('implementation ')
content = content.split('compile("').join('implementation("')
content = content.split('compile(').join('implementation(')
content = content
.split(/androidTestCompile\s/)
.join('androidTestImplementation ')
content = content.split(/testCompile\s/).join('testImplementation ')
content = content.split(/debugCompile\s/).join('debugImplementation ')
content = content.split(/testApi\s/).join('testImplementation ')
content = content.split(/provided\s/).join('compileOnly ')
return content
}
function processGradle() {
console.log(chalk.green.bold('####################################'))
console.log(
chalk.green.bold('#') +
chalk.black.bold(' Upgrade All Android build.gradle ') +
chalk.green.bold('#')
)
console.log(chalk.green.bold('####################################\n'))
if (!fs.existsSync('./node_modules')) {
console.log(chalk.red.bold('node_modules directory does not exists'))
return
}
const dirs = fs.readdirSync('./node_modules')
const subDirs = []
dirs.forEach(dir => {
let exists = fs.existsSync(`./node_modules/${dir}/android/build.gradle`)
if (exists) {
subDirs.push(`./node_modules/${dir}/android/build.gradle`)
}
exists = fs.existsSync(`./node_modules/${dir}/ReactAndroid/build.gradle`)
if (exists) {
subDirs.push(`./node_modules/${dir}/ReactAndroid/build.gradle`)
}
exists = fs.existsSync(`./node_modules/${dir}/src/android/build.gradle`)
if (exists) {
subDirs.push(`./node_modules/${dir}/src/android/build.gradle`)
}
exists = fs.existsSync(`./node_modules/${dir}/lib/android/build.gradle`)
if (exists) {
subDirs.push(`./node_modules/${dir}/lib/android/build.gradle`)
}
exists = fs.existsSync(`./node_modules/${dir}/android/app/build.gradle`)
if (exists) {
subDirs.push(`./node_modules/${dir}/android/app/build.gradle`)
}
})
subDirs.forEach(gradle => {
fs.writeFileSync(gradle, replaceKeyword(fs.readFileSync(gradle).toString()))
console.log(chalk.green.bold('Processed file: ') + gradle)
})
}
setImmediate(() => {
processGradle()
})