UNPKG

1.34 kBJavaScriptView Raw
1var mkdirp = require('mkdirp');
2var fs = require('fs');
3var path = require('path');
4
5var defaultConfigFile = (process.env.HOME || process.env.USERDIR)
6 + '/.config/browser-launcher/config.json';
7exports.defaultConfigFile = defaultConfigFile;
8
9exports.read = function (configFile, cb) {
10 if (typeof configFile === 'function') {
11 cb = configFile;
12 configFile = defaultConfigFile;
13 }
14 if (!configFile) configFile = defaultConfigFile;
15 var configDir = path.dirname(configFile);
16
17 mkdirp(configDir, function (err) {
18 if (err) return cb(err);
19 (fs.exists || path.exists)(configFile, function (ex) {
20 if (ex) {
21 fs.readFile(configFile, function (err, src) {
22 cb(null, JSON.parse(src), configDir);
23 })
24 }
25 else cb(null, undefined, configDir);
26 });
27 });
28};
29
30exports.write = function (configFile, config, cb) {
31 if (!cb) cb = function () {};
32 if (typeof configFile === 'object') {
33 cb = config;
34 config = configFile;
35 configFile = defaultConfigFile;
36 }
37 var configDir = path.dirname(configFile);
38 var src = JSON.stringify(config, null, 2);
39
40 mkdirp(configDir, function (err) {
41 if (err) return cb(err);
42 fs.writeFile(configFile, src, cb);
43 });
44};