github.com/fanux/shipyard@v0.0.0-20161009071005-6515ce223235/controller/static/semantic/tasks/config/user.js (about)

     1  /*******************************
     2               Set-up
     3  *******************************/
     4  
     5  var
     6    // npm dependencies
     7    extend          = require('extend'),
     8    fs              = require('fs'),
     9    path            = require('path'),
    10    requireDotFile  = require('require-dot-file'),
    11  
    12    // semantic.json defaults
    13    defaults        = require('./defaults'),
    14    config          = require('./project/config'),
    15  
    16    // Final config object
    17    gulpConfig = {},
    18  
    19    // semantic.json settings
    20    userConfig
    21  
    22  ;
    23  
    24  
    25  /*******************************
    26            User Config
    27  *******************************/
    28  
    29  try {
    30    // looks for config file across all parent directories
    31    userConfig = requireDotFile('semantic.json');
    32  }
    33  catch(error) {
    34    if(error.code === 'MODULE_NOT_FOUND') {
    35      console.error('No semantic.json config found');
    36    }
    37  }
    38  
    39  // extend user config with defaults
    40  gulpConfig = (!userConfig)
    41    ? extend(true, {}, defaults)
    42    : extend(false, {}, defaults, userConfig)
    43  ;
    44  
    45  /*******************************
    46         Add Derived Values
    47  *******************************/
    48  
    49  // adds calculated values
    50  config.addDerivedValues(gulpConfig);
    51  
    52  
    53  /*******************************
    54               Export
    55  *******************************/
    56  
    57  module.exports = gulpConfig;
    58