smstools-modem-info.js
1.21 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
/* eslint-disable no-console */
// const MAX_LINES_TO_READ = 100000;
const util = require('util');
const exec = util.promisify(require('child_process').exec);
async function getLastLineFromLog(keyword, modemName, logFileName) {
let execResult;
try {
// eslint-disable-next-line max-len
// execResult = await exec(`tail -n${MAX_LINES_TO_READ} ${logFileName} |grep ${modemName}:|grep ${keyword}:|tail -n1`);
execResult = await exec(`tac ${logFileName} |grep ${modemName}:|grep -m 1 ${keyword}:`);
} catch (e) {
console.error(`SMSTOOLS-MODEM-INFO: Got exception. ${e.toString()}`);
return null;
}
return (execResult && execResult.stdout) || null;
}
exports.getIMSI = async (modemName, logFileName) => {
const lastLine = await getLastLineFromLog('IMSI', modemName, logFileName);
if (!lastLine) return null;
const matches = lastLine.trim().match(/IMSI: (\d+)$/);
return matches && matches[1];
};
exports.getIMEI = async (modemName, logFileName) => {
const lastLine = await getLastLineFromLog('IMEI', modemName, logFileName);
if (!lastLine) return null;
const matches = lastLine.trim().match(/IMEI: (\d+)$/);
return matches && matches[1];
};