diff --git a/core/server/api/configuration.js b/core/server/api/configuration.js index 76f2b611b1..b841ea795f 100644 --- a/core/server/api/configuration.js +++ b/core/server/api/configuration.js @@ -22,7 +22,7 @@ function fetchAvailableTimezones() { function getAboutConfig() { return { version: ghostVersion.full, - environment: process.env.NODE_ENV, + environment: config.get('env'), database: config.get('database').client, mail: _.isObject(config.get('mail')) ? config.get('mail').transport : '' }; diff --git a/core/server/api/mail.js b/core/server/api/mail.js index 0f13d697b3..3427661882 100644 --- a/core/server/api/mail.js +++ b/core/server/api/mail.js @@ -2,15 +2,16 @@ // API for sending Mail var Promise = require('bluebird'), + config = require('../config'), pipeline = require('../utils/pipeline'), errors = require('../errors'), mail = require('../mail'), Models = require('../models'), utils = require('./utils'), notifications = require('./notifications'), - docName = 'mail', i18n = require('../i18n'), - mode = process.env.NODE_ENV, + docName = 'mail', + mode = config.get('env'), testing = mode !== 'production' && mode !== 'development', mailer, apiMail; diff --git a/core/server/data/xml/xmlrpc.js b/core/server/data/xml/xmlrpc.js index d25c3d6947..590c4f3f18 100644 --- a/core/server/data/xml/xmlrpc.js +++ b/core/server/data/xml/xmlrpc.js @@ -24,7 +24,7 @@ function ping(post) { url = utils.url.urlFor('post', {post: post}, true); // Only ping when in production and not a page - if (process.env.NODE_ENV !== 'production' || post.page || config.isPrivacyDisabled('useRpcPing')) { + if (config.get('env') !== 'production' || post.page || config.isPrivacyDisabled('useRpcPing')) { return; } diff --git a/core/server/helpers/asset.js b/core/server/helpers/asset.js index 00e6c1031b..ac0a9e2c9d 100644 --- a/core/server/helpers/asset.js +++ b/core/server/helpers/asset.js @@ -3,7 +3,8 @@ // // Returns the path to the specified asset. The ghost flag outputs the asset path for the Ghost admin -var getAssetUrl = require('../data/meta/asset_url'), +var config = require('../config'), + getAssetUrl = require('../data/meta/asset_url'), hbs = require('express-hbs'); function asset(path, options) { @@ -14,7 +15,7 @@ function asset(path, options) { isAdmin = options.hash.ghost; minify = options.hash.minifyInProduction; } - if (process.env.NODE_ENV !== 'production') { + if (config.get('env') !== 'production') { minify = false; } return new hbs.handlebars.SafeString( diff --git a/core/server/helpers/utils.js b/core/server/helpers/utils.js index 6fbc42f63a..0f07169e02 100644 --- a/core/server/helpers/utils.js +++ b/core/server/helpers/utils.js @@ -1,4 +1,5 @@ var _ = require('lodash'), + config = require('../config'), utils; utils = { @@ -6,7 +7,7 @@ utils = { linkTemplate: _.template('<%= text %>'), scriptTemplate: _.template(''), inputTemplate: _.template(' />'), - isProduction: process.env.NODE_ENV === 'production', + isProduction: config.get('env') === 'production', // @TODO this can probably be made more generic and used in more places findKey: function findKey(key, object, data) { if (object && _.has(object, key) && !_.isEmpty(object[key])) { diff --git a/core/server/models/base/index.js b/core/server/models/base/index.js index 895fe37230..4e60c15d3c 100644 --- a/core/server/models/base/index.js +++ b/core/server/models/base/index.js @@ -331,7 +331,7 @@ ghostBookshelf.Model = ghostBookshelf.Model.extend({ requestedColumns = options.columns; // Set this to true or pass ?debug=true as an API option to get output - itemCollection.debug = options.debug && process.env.NODE_ENV !== 'production'; + itemCollection.debug = options.debug && config.get('env') !== 'production'; // Filter options so that only permitted ones remain options = this.filterOptions(options, 'findPage'); diff --git a/core/server/models/client.js b/core/server/models/client.js index 22c3388009..263c021e74 100644 --- a/core/server/models/client.js +++ b/core/server/models/client.js @@ -1,7 +1,7 @@ -var ghostBookshelf = require('./base'), - crypto = require('crypto'), +var crypto = require('crypto'), uuid = require('node-uuid'), - + ghostBookshelf = require('./base'), + config = require('../config'), Client, Clients; @@ -10,7 +10,7 @@ Client = ghostBookshelf.Model.extend({ tableName: 'clients', defaults: function defaults() { - var env = process.env.NODE_ENV, + var env = config.get('env'), secret = env.indexOf('testing') !== 0 ? crypto.randomBytes(6).toString('hex') : 'not_available'; return { diff --git a/core/server/utils/gravatar.js b/core/server/utils/gravatar.js index 9d65163306..106d567fa9 100644 --- a/core/server/utils/gravatar.js +++ b/core/server/utils/gravatar.js @@ -9,7 +9,7 @@ module.exports.lookup = function lookup(userData, timeout) { '?s=250'; return new Promise(function gravatarRequest(resolve) { - if (config.isPrivacyDisabled('useGravatar') || process.env.NODE_ENV.indexOf('testing') > -1) { + if (config.isPrivacyDisabled('useGravatar') || config.get('env').indexOf('testing') > -1) { return resolve(userData); } diff --git a/core/test/unit/config_spec.js b/core/test/unit/config_spec.js index ac5d6f42c9..153523fb31 100644 --- a/core/test/unit/config_spec.js +++ b/core/test/unit/config_spec.js @@ -14,9 +14,7 @@ var should = require('should'), // Thing we are testing configUtils = require('../utils/configUtils'), - config = configUtils.config, - // storing current environment - currentEnv = process.env.NODE_ENV; + config = configUtils.config; i18n.init(); diff --git a/core/test/unit/server_utils_spec.js b/core/test/unit/server_utils_spec.js index d202e94863..a34fae02f0 100644 --- a/core/test/unit/server_utils_spec.js +++ b/core/test/unit/server_utils_spec.js @@ -1,14 +1,15 @@ var should = require('should'), sinon = require('sinon'), nock = require('nock'), + tmp = require('tmp'), + join = require('path').join, + fs = require('fs'), + configUtils = require('../utils/configUtils'), parsePackageJson = require('../../server/utils/parse-package-json'), readDirectory = require('../../server/utils/read-directory'), readThemes = require('../../server/utils/read-themes'), gravatar = require('../../server/utils/gravatar'), - tmp = require('tmp'), - utils = require('../../server/utils'), - join = require('path').join, - fs = require('fs'); + utils = require('../../server/utils'); // To stop jshint complaining should.equal(true, true); @@ -367,16 +368,12 @@ describe('Server Utilities', function () { }); describe('gravatar-lookup', function () { - var currentEnv = process.env.NODE_ENV; - beforeEach(function () { - // give environment a value that will call gravatar - process.env.NODE_ENV = 'production'; + configUtils.set('env', 'production'); }); afterEach(function () { - // reset the environment - process.env.NODE_ENV = currentEnv; + configUtils.restore(); }); it('can successfully lookup a gravatar url', function (done) { diff --git a/core/test/unit/xmlrpc_spec.js b/core/test/unit/xmlrpc_spec.js index 10f11f5a74..ecc7a27ba3 100644 --- a/core/test/unit/xmlrpc_spec.js +++ b/core/test/unit/xmlrpc_spec.js @@ -8,9 +8,7 @@ var _ = require('lodash'), configUtils = require('../utils/configUtils'), xmlrpc = rewire('../../server/data/xml/xmlrpc'), events = require('../../server/events'), - logging = require('../../server/logging'), - // storing current environment - currentEnv = process.env.NODE_ENV; + logging = require('../../server/logging'); // To stop jshint complaining should.equal(true, true); @@ -21,16 +19,14 @@ describe('XMLRPC', function () { beforeEach(function () { sandbox = sinon.sandbox.create(); eventStub = sandbox.stub(events, 'on'); - // give environment a value that will ping - process.env.NODE_ENV = 'production'; + + configUtils.set('env', 'production'); }); afterEach(function () { sandbox.restore(); configUtils.restore(); nock.cleanAll(); - // reset the environment - process.env.NODE_ENV = currentEnv; }); it('listen() should initialise event correctly', function () {