diff options
author | Bob Zeleznik <zzzman@gmail.com> | 2020-05-17 22:06:05 -0400 |
---|---|---|
committer | Bob Zeleznik <zzzman@gmail.com> | 2020-05-17 22:06:05 -0400 |
commit | da48b8a48898c9bc15958fc99cf9722952e13efd (patch) | |
tree | 339e82aa634d5e194840de725e0a120eed7dc607 /src/server/apis/google/CredentialsLoader.ts | |
parent | 43fb6e4569dd2a7cdebb532cf094eb5b780fb3c7 (diff) | |
parent | 594be0efec57eac3c12aa3765954411e244ae962 (diff) |
Merge branch 'master' of https://github.com/browngraphicslab/Dash-Web
Diffstat (limited to 'src/server/apis/google/CredentialsLoader.ts')
-rw-r--r-- | src/server/apis/google/CredentialsLoader.ts | 30 |
1 files changed, 26 insertions, 4 deletions
diff --git a/src/server/apis/google/CredentialsLoader.ts b/src/server/apis/google/CredentialsLoader.ts index 09db4fc60..ef1f9a91e 100644 --- a/src/server/apis/google/CredentialsLoader.ts +++ b/src/server/apis/google/CredentialsLoader.ts @@ -1,6 +1,7 @@ import { readFile, readFileSync } from "fs"; import { pathFromRoot } from "../../ActionUtilities"; import { SecureContextOptions } from "tls"; +import { blue, red } from "colors"; export namespace GoogleCredentialsLoader { @@ -30,16 +31,37 @@ export namespace GoogleCredentialsLoader { } -export namespace SSLCredentialsLoader { +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(); - Credentials.key = cert(".key"); - Credentials.cert = cert(".crt"); - Credentials.ca = cert("-ca.crt"); + 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); } } |