fix: ES5 compatiblity inside computer-identifiers.js

Co-authored-by: DaanSelen <dselen@systemec.nl>

DaanSelen committed Feb 7, 2026 at 10:27 UTC 545c1236f05b6f08c948e0cf86f3781423cc5505
1 file changed +18 -6
agents/modules_meshcore/computer-identifiers.js
+18 -6
@@ -120,20 +120,32 @@ function linux_identifiers()
120 identifiers['product_name'] = ret['product_name'];
121 }
122
123 + // BIOS Mode
124 try {
124 - if ((require('fs')).existsSync('/sys/firmware/efi')) {
125 + var uefiExist = false;
126 + var assumePi = false;
127 +
128 + try { uefiExist = (require('fs')).existsSync('/sys/firmware/efi'); }
129 + catch (ex) { uefiExist = false; }
130 +
131 + try { assumePi = (require('fs')).existsSync('/sys/firmware/devicetree/base/model'); }
132 + catch (ex) { assumePi = false; }
133 +
134 + if (uefiExist) {
135 identifiers['bios_mode'] = 'UEFI';
126 - } else if ((require('fs')).existsSync('/sys/firmware/devicetree/base/model')) {
127 - const modelContent = (require('fs')).readFileSync('/sys/firmware/devicetree/base/model').trim();
136 + } else if (assumePi) {
137 + var modelBuffer = (require('fs')).readFileSync('/sys/firmware/devicetree/base/model');
138 + var modelString = modelBuffer.toString().trim()
139
129 - if (modelContent.includes('Raspberry Pi')) {
130 - identifiers['bios_mode'] = 'Raspberry Pi Firmware (Proprietary)'
140 + if (modelString.includes('Raspberry Pi')) {
141 + identifiers['bios_mode'] = 'Raspberry Pi Firmware (Proprietary)';
142 }
143 } else {
133 - identifiers['bios_mode'] = 'Legacy';
144 + identifiers['bios_mode'] = 'Legacy BIOS (MBR)';
145 }
146 } catch (ex) { identifiers['bios_mode'] = 'Legacy / Unknown'; }
147
148 + // CPU Model info
149 child = require('child_process').execFile('/bin/sh', ['sh']);
150 child.stdout.str = ''; child.stdout.on('data', dataHandler);
151 child.stdin.write('cat /proc/cpuinfo | grep -i "model name" | ' + "tr '\\n' ':' | awk -F: '{ print $2 }'\nexit\n");