text: 'use strict';
  
  var path = require('path');
  var _ = require('lodash');
  
  function requiredProcessEnv(name) {
      if (!process.env[name]) {
          throw new Error('You must set the ' + name + ' environment variable');
      }
      return process.env[name];
  }
  
  // All configurations will extend these options
  // ============================================
  var all = {
      env: process.env.NODE_ENV,
  
      // Root path of server
      root: path.normalize(__dirname + '/../../..'),
  
      // Server port
      port: process.env.PORT || 9000,
  
      // Should we populate the DB with sample data?
      seedDB: false,
  
      // Secret for session, you will want to change this and make it an environment variable
      secrets: {
          session: 'communaut-art-secret'
      },
  
      // List of user roles
      userRoles: ['guest', 'user', 'admin'],
  
      // MongoDB connection options
      mongo: {
          options: {
              db: {
                  safe: true
              }
          }
      },
  
      facebook: {
          clientID: process.env.FACEBOOK_ID || 'id',
          clientSecret: process.env.FACEBOOK_SECRET || 'secret',
          callbackURL: (process.env.DOMAIN || '') + '/auth/facebook/callback'
      },
  
      google: {
          clientID: process.env.GOOGLE_ID || 'id',
          clientSecret: process.env.GOOGLE_SECRET || 'secret',
          callbackURL: (process.env.DOMAIN || '') + '/auth/google/callback'
      },
      deviantart: {
          clientID: process.env.DEVIANTART_ID || 'id',
          clientSecret: process.env.DEVIANTART_SECRET || 'secret',
          callbackURL: (process.env.DOMAIN || '') + '/auth/deviantart/callback'
      }
  };
  
  // Export the config object based on the NODE_ENV
  // ==============================================
  module.exports = _.merge(
      all,
      require('./' + process.env.NODE_ENV + '.js') || {});