'use strict'; var commandLineArgs = require('command-line-args'); var commandLineUsage = require('command-line-usage'); var commandLineDefs = [ { name: 'help', alias: 'h', type: Boolean, description: 'Show this help' }, { name: 'config', alias: 'c', type: String, description: 'Location of config.json' } ]; var commandLineOptions; try { commandLineOptions = commandLineArgs(commandLineDefs); } catch (e) { console.error(e.message); console.error('Try \'--help\' for more information.'); process.exit(1); } if (commandLineOptions.help || !commandLineOptions.config) { console.log(commandLineUsage([ { header: 'ffffng - Freifunk node management form', optionList: commandLineDefs } ])); process.exit(1); } var fs = require('fs'); var deepExtend = require('deep-extend'); var defaultConfig = { server: { baseUrl: 'http://localhost:8080', port: 8080, databaseFile: '/tmp/ffffng.sqlite', peersPath: '/tmp/peers', logging: { directory: '/tmp/logs', debug: false, logRequests: false }, internal: { active: false, user: 'admin', password: 'secret' }, email: { from: 'Freifunk Knotenformular ', // For details see: https://nodemailer.com/2-0-0-beta/setup-smtp/ smtp: { host: 'mail.example.com', port: '465', secure: true, auth: { user: 'user@example.com', pass: 'pass' } } }, map: { nodesJsonUrl: 'http://map.musterstadt.freifunk.net/nodes.json' } }, client: { community: { name: 'Freifunk Musterstadt', domain: 'musterstadt.freifunk.net', contactEmail: 'kontakt@musterstadt.freifunk.net' }, map: { mapUrl: 'http://map.musterstadt.freifunk.net' }, monitoring: { enabled: false }, coordsSelector: { showInfo: false, showBorderForDebugging: false, localCommunityPolygon: [], lat: 53.565278, lng: 10.001389, defaultZoom: 10 } } }; var configJSONFile = commandLineOptions.config; var configJSON = {}; if (fs.existsSync(configJSONFile)) { configJSON = JSON.parse(fs.readFileSync(configJSONFile, 'utf8')); } else { console.error('config.json not found: ' + configJSONFile); process.exit(1); } var config = deepExtend({}, defaultConfig, configJSON); module.exports = config; angular.module('ffffng').constant('config', config);