26 lines
827 B
JavaScript
26 lines
827 B
JavaScript
|
const fs = require('fs');
|
||
|
const path = require('path');
|
||
|
const fileSearch = require('./file_search');
|
||
|
|
||
|
module.exports = function (opts) {
|
||
|
opts = opts || {};
|
||
|
var configNameSearch = opts.configNameSearch;
|
||
|
var configPath = opts.configPath;
|
||
|
var searchPaths = opts.searchPaths;
|
||
|
// only search for a config if a path to one wasn't explicitly provided
|
||
|
if (!configPath) {
|
||
|
if (!Array.isArray(searchPaths)) {
|
||
|
throw new Error('Please provide an array of paths to search for config in.');
|
||
|
}
|
||
|
if (!configNameSearch) {
|
||
|
throw new Error('Please provide a configNameSearch.');
|
||
|
}
|
||
|
configPath = fileSearch(configNameSearch, searchPaths);
|
||
|
}
|
||
|
// confirm the configPath exists and return an absolute path to it
|
||
|
if (fs.existsSync(configPath)) {
|
||
|
return path.resolve(configPath);
|
||
|
}
|
||
|
return null;
|
||
|
};
|