12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- var tty = require('tty');
- var object = require('mout').object;
- var bowerConfig = require('bower-config');
- var cli = require('./util/cli');
- var cachedConfigs = {};
- function defaultConfig(config) {
- config = config || {};
- var cachedConfig = readCachedConfig(config.cwd || process.cwd());
- return object.merge(cachedConfig, config);
- }
- function readCachedConfig(cwd) {
- if (cachedConfigs[cwd]) {
- return cachedConfigs[cwd];
- }
- var config = cachedConfigs[cwd] = bowerConfig.read(cwd);
- // Delete the json attribute because it is no longer supported
- // and conflicts with --json
- delete config.json;
- // If interactive is auto (null), guess its value
- if (config.interactive == null) {
- config.interactive = (
- process.bin === 'bower' &&
- tty.isatty(1) &&
- !process.env.CI
- );
- }
- // Merge common CLI options into the config
- object.mixIn(config, cli.readOptions({
- force: { type: Boolean, shorthand: 'f' },
- offline: { type: Boolean, shorthand: 'o' },
- verbose: { type: Boolean, shorthand: 'V' },
- quiet: { type: Boolean, shorthand: 'q' },
- loglevel: { type: String, shorthand: 'l' },
- json: { type: Boolean, shorthand: 'j' },
- silent: { type: Boolean, shorthand: 's' }
- }));
- return config;
- }
- function resetCache () {
- cachedConfigs = {};
- }
- module.exports = defaultConfig;
- module.exports.reset = resetCache;
|