aboutsummaryrefslogtreecommitdiff
path: root/src/server/apis/google/CredentialsLoader.ts
diff options
context:
space:
mode:
authorBob Zeleznik <zzzman@gmail.com>2020-05-20 17:42:02 -0400
committerBob Zeleznik <zzzman@gmail.com>2020-05-20 17:42:02 -0400
commitc04da1528de48a1e911f5c8989f32bfd0138882b (patch)
tree1d1c4736821f2fe1dae0175b9ef0d7c47d1dfdb4 /src/server/apis/google/CredentialsLoader.ts
parent2af870505bbd181ec0d121439da5dad9a0bcddcc (diff)
parent0460e38b8d1136983c7f36ae1cdf466296345065 (diff)
merged & fixed some interaction issues with comparisonBox
Diffstat (limited to 'src/server/apis/google/CredentialsLoader.ts')
-rw-r--r--src/server/apis/google/CredentialsLoader.ts40
1 files changed, 39 insertions, 1 deletions
diff --git a/src/server/apis/google/CredentialsLoader.ts b/src/server/apis/google/CredentialsLoader.ts
index e3f4d167b..ef1f9a91e 100644
--- a/src/server/apis/google/CredentialsLoader.ts
+++ b/src/server/apis/google/CredentialsLoader.ts
@@ -1,4 +1,7 @@
-import { readFile } from "fs";
+import { readFile, readFileSync } from "fs";
+import { pathFromRoot } from "../../ActionUtilities";
+import { SecureContextOptions } from "tls";
+import { blue, red } from "colors";
export namespace GoogleCredentialsLoader {
@@ -27,3 +30,38 @@ export namespace GoogleCredentialsLoader {
}
}
+
+export namespace SSL {
+
+ export let Credentials: SecureContextOptions = {};
+ export let Loaded = false;
+
+ const suffixes = {
+ privateKey: ".key",
+ certificate: ".crt",
+ caBundle: "-ca.crt"
+ };
+
+ export async function loadCredentials() {
+ const { serverName } = process.env;
+ const cert = (suffix: string) => readFileSync(pathFromRoot(`./${serverName}${suffix}`)).toString();
+ try {
+ Credentials.key = cert(suffixes.privateKey);
+ Credentials.cert = cert(suffixes.certificate);
+ Credentials.ca = cert(suffixes.caBundle);
+ Loaded = true;
+ } catch (e) {
+ Credentials = {};
+ Loaded = false;
+ }
+ }
+
+ export function exit() {
+ console.log(red("Running this server in release mode requires the following SSL credentials in the project root:"));
+ const serverName = process.env.serverName ? process.env.serverName : "{process.env.serverName}";
+ Object.values(suffixes).forEach(suffix => console.log(blue(`${serverName}${suffix}`)));
+ console.log(red("Please ensure these files exist and restart, or run this in development mode."));
+ process.exit(0);
+ }
+
+}