const path = require('path'); const moment = require('moment'); const config = require('komodo-sdk/config'); const smstoolsConfig = require('./config-file'); function modemNames() { const modems = []; // eslint-disable-next-line no-restricted-syntax for (const [key, value] of Object.entries(smstoolsConfig.modems || {})) { if (value && !value.disabled) modems.push(key); } return modems; } function modemEntries() { const modems = modemNames(); const retval = []; modems.forEach((modemName) => { const modem = smstoolsConfig.modems[modemName]; const modemEntry = ` [${modemName}] device = ${modem.device} outgoing = ${modem.outgoing ? 'yes' : 'no'} `.trim(); retval.push(modemEntry); }); return retval; } module.exports = () => { const newContent = ` # Generated by komodo-center-smstools based on config timestamp ${moment(smstoolsConfig.ts).format('YYYY-MM-DD HH:mm:ss')} # Do not edit this file manually devices = ${modemNames().join(',')} logfile = ${config.smstools_logfile || config.smstools_log_file || '/var/log/smsd/smsd.log'} loglevel = ${smstoolsConfig.loglevel || 5} smartlogging = yes autosplit = ${(config.smstools_autosplit !== undefined && config.smstools_autosplit !== null) ? config.smstools_autosplit : 1} user = ${smstoolsConfig.user || 'smstools'} group = ${smstoolsConfig.group || 'smstools'} eventhandler = ${config.smstools_eventhandler || '/var/lib/smstools/centers/smstools/bin/smstools-eventhandler.js'} stats_interval = ${config.smstools_stats_interval || 60} stats = ${path.dirname(config.smstools_status_file) || '/var/log/smsd/smsd_stats'} sent = /var/spool/sms/sent ${smstoolsConfig.customConfig || ''} [default] incoming = yes regular_run_interval = 60 regular_run_cmd = AT+CGSN regular_run_cmd = AT+CIMI regular_run_cmd = AT+COPS? regular_run_statfile = /var/spool/sms/regular_run/modemname ${modemEntries().join('\n\n')} # end of configuration file `; return `${newContent.trim()}\n`; };