UNPKG

1.31 kBJavaScriptView Raw
1'use strict';
2
3var mkdirp = require('mkdirp')
4 , path = require('path')
5 , fs = require('fs')
6 , paths = require('./paths')
7 , utl = require('../lib/utl')
8 , log = require('../lib/log')
9 , colors = require('ansicolors')
10 ;
11
12function loadFrom (p) {
13 log.print(colors.yellow('\nLoading replpad config from: %s\n'), p);
14 return require(p);
15}
16
17module.exports = function () {
18 if (!utl.existsSync(paths.configFile)) {
19
20 mkdirp.sync(path.dirname(paths.configFile));
21
22 try {
23 utl.copyFileSync(require.resolve('./default-config'), paths.configFile);
24 return loadFrom(paths.configFile);
25 } catch (err) {
26 log.error('Unable to create config file', err);
27 log.error('Unable to create config file', err.stack);
28 log.infoln('Using default config');
29 return require('./default-config');
30 }
31
32 log.print(colors.yellow('\nCreated replpad config at: %s\n'), paths.configFile);
33 } else {
34
35 // Guard against errors in customized config file
36 try {
37 return loadFrom(paths.configFile);
38 } catch(e) {
39 log.error('Sorry, it looks like you have an error in your config file at: ', paths.configFile);
40 log.error(e);
41 log.infoln('Using default config until the problem is fixed.');
42 return require('./default-config');
43 }
44 }
45};