UNPKG

simple-breakpad-server

Version:
105 lines (78 loc) 2.29 kB
(function() { var SBS_HOME, customFields, field, fs, i, idx, j, len, len1, nconf, os, path, ref, ref1; nconf = require('nconf'); nconf.formats.yaml = require('nconf-yaml'); fs = require('fs-promise'); os = require('os'); path = require('path'); SBS_HOME = path.join(os.homedir(), '.simple-breakpad-server'); nconf.file('pwd', { file: path.join(process.cwd(), 'breakpad-server.yaml'), format: nconf.formats.yaml }); nconf.file('user', { file: path.join(SBS_HOME, 'breakpad-server.yaml'), format: nconf.formats.yaml }); if (process.platform !== 'win32') { nconf.file('system', { file: '/etc/breakpad-server.yaml', format: nconf.formats.yaml }); } nconf.argv(); nconf.env(); nconf.defaults({ port: 1127, baseUrl: '/', database: { host: 'localhost', dialect: 'sqlite', storage: path.join(SBS_HOME, 'database.sqlite'), logging: false }, customFields: { files: [], params: [] }, dataDir: SBS_HOME }); customFields = nconf.get('customFields'); customFields.files = customFields.files || []; customFields.files.splice(0, 0, { name: 'upload_file_minidump', downloadAs: 'upload_file_minidump.{{id}}.dmp' }); customFields.filesById = {}; ref = customFields.files; for (idx = i = 0, len = ref.length; i < len; idx = ++i) { field = ref[idx]; if (typeof field === 'string') { customFields.files[idx] = { name: field }; } customFields.filesById[customFields.files[idx].name] = customFields.files[idx]; } customFields.params = customFields.params || []; customFields.params.splice(0, 0, { name: 'ip' }); customFields.paramsById = {}; ref1 = customFields.params; for (idx = j = 0, len1 = ref1.length; j < len1; idx = ++j) { field = ref1[idx]; if (typeof field === 'string') { customFields.params[idx] = { name: field }; } customFields.paramsById[customFields.params[idx].name] = customFields.params[idx]; } nconf.set('customFields', customFields); nconf.getSymbolsPath = function() { return path.join(nconf.get('dataDir'), 'symbols'); }; fs.mkdirsSync(nconf.getSymbolsPath()); module.exports = nconf; }).call(this);