1
0
Fork 0
mirror of https://github.com/betaflight/betaflight-configurator.git synced 2025-07-13 03:19:56 +03:00
betaflight-configurator/capacitor.config.generator.mjs
Míguel Ángel Mulero Martínez 1a979e3105
Add script to generate the capacitor.config.json file (#4075)
In this way we can generate the modifications for android with live reload automatically.
2024-07-01 16:34:10 +02:00

70 lines
1.8 KiB
JavaScript

import fs from 'fs';
import inquirer from 'inquirer';
import os from 'os';
const VITE_SERVER_PORT = 8000;
async function getIpList() {
const nets = os.networkInterfaces();
const ipList = [];
for (const name of Object.keys(nets)) {
for (const net of nets[name]) {
const familyV4Value = typeof net.family === 'string' ? 'IPv4' : 4;
if (net.family === familyV4Value && !net.internal) {
ipList.push(net.address);
}
}
}
return ipList;
}
async function filterIpList(ipList) {
if (ipList.length === 0) {
console.log('No IP address found');
process.exit(1);
}
if (ipList.length === 1) {
console.log('Only one IP address found:', ipList[0]);
return ipList[0];
}
const option = await inquirer.prompt([
{
type: 'list',
name: 'ip',
message: 'Select the IP address where the Vite server is running:',
choices: ipList,
},
]);
return option.ip;
}
async function modifyDevCapacitorConfig(capacitorConfigBase) {
const ipList = await getIpList();
const ip = await filterIpList(ipList);
capacitorConfigBase.server= {
url: `http://${ip}:${VITE_SERVER_PORT}`,
cleartext: true,
};
return capacitorConfigBase;
}
const capacitorConfig = JSON.parse(fs.readFileSync('./capacitor.config.base.json', { encoding: 'utf8', flag: 'r' }));
if (process.argv.length > 2 && process.argv[2] === '--dev') {
modifyDevCapacitorConfig(capacitorConfig)
.then((capacitorConfig) => {
console.log('Generating capacitor.config.json DEVELOPMENT with:\n', capacitorConfig);
fs.writeFileSync('capacitor.config.json', JSON.stringify(capacitorConfig));
});
} else {
console.log('Generating capacitor.config.json STANDARD with:\n', capacitorConfig);
fs.writeFileSync('capacitor.config.json', JSON.stringify(capacitorConfig));
}