You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

58 lines
1.2 KiB

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