From 35546b4b1893ee6b5f7b478e584c9505bb1b563b Mon Sep 17 00:00:00 2001 From: Hornwitser Date: Fri, 23 Aug 2019 22:03:48 +0200 Subject: [PATCH] Move loading of config in master to startServer Move the loading of the config file in the master server to the startServer function. Remove config.json.test as it's no longer needed. --- .travis.yml | 1 - config.json.test | 46 ---------------------------------------------- master.js | 7 +++++-- master.spec.js | 13 +++++++++---- 4 files changed, 14 insertions(+), 53 deletions(-) delete mode 100644 config.json.test diff --git a/.travis.yml b/.travis.yml index 0340e2d5..31d07777 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,7 +4,6 @@ node_js: before_install: - curl -o factorio.tar.gz -L https://www.factorio.com/get-download/latest/headless/linux64 - tar -xf factorio.tar.gz - - cp -n config.json.test config.json - npm install -g codecov script: - npm run-script ci-cover diff --git a/config.json.test b/config.json.test deleted file mode 100644 index d3ecb3f7..00000000 --- a/config.json.test +++ /dev/null @@ -1,46 +0,0 @@ -{ - "factorioDirectory": "./factorio", - "instanceDirectory": "./instances", - "databaseDirectory": "./database", - - "publicIP": "localhost", - - "masterIP": "localhost", - - "masterPort": 8080, - - "sslPort": 443, - "sslCert": "database/certificates/cert.crt", - "sslPrivKey": "database/certificates/cert.key", - "masterAuthToken": "", - "masterAuthSecret": "TestSecretDoNotUse", - - "username": "", - "token": "", - "factorio_version": "0.16.41", - - "verify_user_identity": true, - "auto_pause": false, - "allow_commands": "admins-only", - "game_password": "", - "description": "This server runs Clusterio", - "visibility": { - "public": true, - "lan": true - }, - - "itemStats": { - "maxEntries":60, - "entriesPerSecond": 0.01666666667 - }, - "logItemTransfers": false, - "disableFairItemDistribution": true, - "useNeuralNetDoleDivider": false, - "uploadModsToMaster": true, - "msBetweenCommands": 10, - "allowRemoteCommandExecution": true, - "enableCrossServerShout": true, - "mirrorAllChat": false, - "autosaveInterval": 600000, - "disableImportsOfEverythingExceptElectricity": false -} diff --git a/master.js b/master.js index c8d96d59..4abb2779 100644 --- a/master.js +++ b/master.js @@ -28,8 +28,7 @@ const moment = require("moment"); const request = require("request"); // constants -console.log(`Requiring config from ${args.config || './config'}`); -const config = require(args.config || './config'); +let config = {}; // homebrew modules const generateSSLcert = require("lib/generateSSLcert"); @@ -865,6 +864,9 @@ async function startServer() { // add better stack traces on promise rejection process.on('unhandledRejection', r => console.log(r)); + console.log(`Requiring config from ${args.config || './config'}`); + config = require(args.config || './config'); + /** Sync */ function randomStringAsBase64Url(size) { return base64url(crypto.randomBytes(size)); @@ -964,6 +966,7 @@ module.exports = { // For testing only _db: db, + _config: config, } if (module === require.main) { diff --git a/master.spec.js b/master.spec.js index 31d490f5..41d0874a 100644 --- a/master.spec.js +++ b/master.spec.js @@ -5,17 +5,22 @@ const parallel = require('mocha.parallel'); const jwt = require("jsonwebtoken"); const master = require('./master.js'); -const config = require('./config.json'); const authenticate = require('lib/authenticate'); const database = require('lib/database'); -authenticate.setAuthSecret(config.masterAuthSecret); master._db.slaves = new Map(); master._db.items = new database.ItemDatabase(); -const token = - jwt.sign( { id: "api" }, config.masterAuthSecret, { expiresIn: 600 }); +// Fields required in the config +master._config.factorioDirectory = "factorio"; +master._config.itemStats = { maxEntries:60, entriesPerSecond: 1 / 60 }; +master._config.disableFairItemDistribution = true; + +const testSecret = "TestSecretDoNotUse"; +authenticate.setAuthSecret(testSecret); + +const token = jwt.sign({ id: "api" }, testSecret, { expiresIn: 600 }); async function get(path) { return await request(master.app).get(path).expect(200);