react-native-integrate
Version:
Automate integration of additional code into React Native projects
40 lines (39 loc) • 1.81 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.importAndroidVersionName = importAndroidVersionName;
const fs_1 = __importDefault(require("fs"));
const path_1 = __importDefault(require("path"));
const picocolors_1 = __importDefault(require("picocolors"));
const prompter_1 = require("../../../prompter");
const getProjectPath_1 = require("../../getProjectPath");
function importAndroidVersionName(projectPath) {
try {
// get android version code from build.gradle
const buildGradlePath = path_1.default.join(projectPath, 'android/app/build.gradle');
const buildGradle = fs_1.default.readFileSync(buildGradlePath, 'utf8');
const versionNameMatch = buildGradle.match(/versionName (.*)/);
const versionName = versionNameMatch?.[1];
if (!versionName)
return null;
return {
id: 'androidVersionName',
title: 'Android Version Name',
value: versionName,
apply: () => setAndroidVersionName(versionName),
};
}
catch (_e) {
return null;
}
}
async function setAndroidVersionName(version) {
const buildGradlePath = path_1.default.join((0, getProjectPath_1.getProjectPath)(), 'android/app/build.gradle');
const buildGradle = fs_1.default.readFileSync(buildGradlePath, 'utf8');
const newBuildGradle = buildGradle.replace(/versionName (.*)/, `versionName ${version}`);
fs_1.default.writeFileSync(buildGradlePath, newBuildGradle);
(0, prompter_1.logMessage)(`set ${picocolors_1.default.yellow('versionName')} to ${picocolors_1.default.yellow(version)}`);
return Promise.resolve();
}