From 6fcfcc550921ab43c00d323c172fd9d04211e53d Mon Sep 17 00:00:00 2001 From: Alan Pearce Date: Sun, 8 Oct 2017 11:18:37 +0200 Subject: Allow config file to be specified Currently via environment variable, but for now that's fine as the only use that I can forsee is for testing, where the plumbing is more important than the interface. --- src/app.js | 16 +++++++--------- src/index.js | 5 +++-- src/modules/config.js | 11 ++++++----- 3 files changed, 16 insertions(+), 16 deletions(-) (limited to 'src') diff --git a/src/app.js b/src/app.js index 20ffb69..e9af4f5 100644 --- a/src/app.js +++ b/src/app.js @@ -8,25 +8,23 @@ const helmet = require("koa-helmet"); const actions = require("./actions.js"); const responders = require("./responders.js"); -const config = require("./modules/config.js"); - const Router = require("koa-router"); const router = new Router(); const makeTagURI = (authority, startDate) => specific => `tag:${authority},${startDate}:${specific}`; -app.context.makeTagURI = makeTagURI( - config.feed.originalDomainName, - config.feed.domainStartDate -); -app.context.getURL = router.url.bind(router); - -module.exports = async function() { +module.exports = async function(config) { const Posts = await require("./domain/posts.js")(config.posts, basename => router.url("post", basename) ); + app.context.getURL = router.url.bind(router); + app.context.makeTagURI = makeTagURI( + config.feed.originalDomainName, + config.feed.domainStartDate + ); + router.get("home", "/", actions.home(config, responders.home, Posts.posts)); router.get( diff --git a/src/index.js b/src/index.js index b7bc1a3..a9ce7f7 100644 --- a/src/index.js +++ b/src/index.js @@ -1,7 +1,8 @@ "use strict"; -const config = require("./modules/config.js"); +const getConfig = require("./modules/config.js"); +const CONFIG_FILE = process.env.CONFIG_FILE || undefined; const PORT = process.env.PORT || config.server.port; const targetDir = process.argv[2]; @@ -13,7 +14,7 @@ const app = require("./app.js"); (async function() { try { - (await app()).listen(PORT, () => { + (await app(getConfig(CONFIG_FILE))).listen(PORT, () => { console.log(`App listening on port ${PORT}`); }); } catch (error) { diff --git a/src/modules/config.js b/src/modules/config.js index 72d1b1a..5500323 100644 --- a/src/modules/config.js +++ b/src/modules/config.js @@ -4,11 +4,12 @@ const path = require("path"); const TOML = require("toml"); const config = require("configly"); -module.exports = config( - ["./config", path.resolve(__dirname, "../../config/")], - { +function getConfig(configFile = "./config") { + return config(["./config", path.resolve(__dirname, "../../config/")], { parsers: { toml: TOML.parse } - } -); + }); +} + +module.exports = getConfig; -- cgit 1.4.1