diff options
| author | Kevin J Hoerr <kjhoerr@protonmail.com> | 2019-12-12 14:30:58 -0500 |
|---|---|---|
| committer | Kevin J Hoerr <kjhoerr@protonmail.com> | 2019-12-12 14:30:58 -0500 |
| commit | 91efa5ab51904667eaf3353008753ea99bf5b17d (patch) | |
| tree | 91e6b26f5e7b27c6a2bb22c1c5388afc8edec5d7 /src/index.ts | |
| parent | 0d810aa92e9b54493a2e075c3bb497b3857a2119 (diff) | |
| download | ao-coverage-91efa5ab51904667eaf3353008753ea99bf5b17d.tar.gz ao-coverage-91efa5ab51904667eaf3353008753ea99bf5b17d.tar.bz2 ao-coverage-91efa5ab51904667eaf3353008753ea99bf5b17d.zip | |
Simplify and generalize template processing
"For the unit tests. For the unit tests!"
Diffstat (limited to 'src/index.ts')
| -rw-r--r-- | src/index.ts | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/src/index.ts b/src/index.ts index 4165d2e..12bbd76 100644 --- a/src/index.ts +++ b/src/index.ts @@ -9,6 +9,7 @@ import expressWinston from "express-winston"; dotenv.config(); +import processTemplate, { Template } from "./templates"; import routes from "./routes"; import Metadata from "./metadata"; import loggerConfig from "./util/logger"; @@ -17,6 +18,7 @@ import { configOrError, handleShutdown } from "./util/config"; // Start-up configuration const BIND_ADDRESS = process.env.BIND_ADDRESS || "localhost"; const PORT = Number(process.env.PORT || 3000); +const TARGET_URL = process.env.TARGET_URL || "http://localhost:3000"; const logger = winston.createLogger(loggerConfig("ROOT")); @@ -31,7 +33,26 @@ if (!path.isAbsolute(HOST_DIR)) { } // prepare template files -require("./templates"); +const bashTemplate = { + inputFile: path.join(__dirname, "..", "public", "bash.template"), + outputFile: path.join(HOST_DIR, "bash"), + context: { TARGET_URL } +} as Template; +processTemplate(bashTemplate) + .then(template => { + logger.debug("Generated '%s' from template file", template.outputFile); + }) + .catch(err => { + logger.error("Unable to process template file: %s", err); + + // if the output file exists, then we are fine with continuing without + return fs.promises.access(bashTemplate.outputFile, fs.constants.R_OK); + }) + .catch(err => { + logger.error("Cannot proceed: %s", err); + + process.exit(1); + }); new MongoClient(MONGO_URI, { useUnifiedTopology: true }).connect( (err, mongo) => { |
