pushwoosh-cordova-plugin
Version:
This plugin allows you to send and receive push notifications. Powered by Pushwoosh (www.pushwoosh.com).
36 lines (28 loc) • 1.4 kB
JavaScript
const fs = require('fs');
const path = require('path');
module.exports = function (ctx) {
if (!ctx.opts.platforms.includes('android')) return;
const projectRoot = ctx.opts.projectRoot;
// Cordova tracks plugin vars in plugins/fetch.json — reliable source
const fetchPath = path.join(projectRoot, 'plugins', 'fetch.json');
if (!fs.existsSync(fetchPath)) return;
const fetch = JSON.parse(fs.readFileSync(fetchPath, 'utf8'));
const entry = fetch['pushwoosh-cordova-plugin'];
const vars = (entry && entry.variables) || {};
const val = String(vars.PW_VOIP_ANDROID_ENABLED || 'false').toLowerCase();
// Write to platforms/android/gradle.properties
const gradleProps = path.join(projectRoot, 'platforms', 'android', 'gradle.properties');
if (!fs.existsSync(path.dirname(gradleProps))) return; // android platform not added yet
let contents = fs.existsSync(gradleProps) ? fs.readFileSync(gradleProps, 'utf8') : '';
const line = `PW_VOIP_ANDROID_ENABLED=${val}\n`;
const re = /^PW_VOIP_ANDROID_ENABLED=.*$/m;
if (re.test(contents)) {
contents = contents.replace(re, line.trim());
} else {
if (contents.length && !contents.endsWith('\n')) contents += '\n';
contents += line;
}
fs.writeFileSync(gradleProps, contents, 'utf8');
console.log(`[pushwoosh-cordova-plugin] Wrote PW_VOIP_ANDROID_ENABLED=${val} to gradle.properties`);
};