simple-breakpad-server
Version:
Simple breakpad crash reports collecting server
105 lines (78 loc) • 2.29 kB
JavaScript
(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);