Add command line flag for enabling production cert

This commit is contained in:
Max Goodman
2020-06-21 02:10:23 -07:00
parent b191079bf2
commit a1e3f100c7
4 changed files with 8 additions and 50 deletions

49
package-lock.json generated
View File

@@ -3983,52 +3983,6 @@
"sha.js": "^2.4.8" "sha.js": "^2.4.8"
} }
}, },
"cross-env": {
"version": "7.0.2",
"resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.2.tgz",
"integrity": "sha512-KZP/bMEOJEDCkDQAyRhu3RL2ZO/SUVrxQVI0G3YEQ+OLbRA3c6zgixe8Mq8a/z7+HKlNEjo8oiLUs8iRijY2Rw==",
"requires": {
"cross-spawn": "^7.0.1"
},
"dependencies": {
"cross-spawn": {
"version": "7.0.3",
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
"integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
"requires": {
"path-key": "^3.1.0",
"shebang-command": "^2.0.0",
"which": "^2.0.1"
}
},
"path-key": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
"integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q=="
},
"shebang-command": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
"integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
"requires": {
"shebang-regex": "^3.0.0"
}
},
"shebang-regex": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
"integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A=="
},
"which": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
"integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
"requires": {
"isexe": "^2.0.0"
}
}
}
},
"cross-spawn": { "cross-spawn": {
"version": "6.0.5", "version": "6.0.5",
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
@@ -6296,7 +6250,8 @@
"isexe": { "isexe": {
"version": "2.0.0", "version": "2.0.0",
"resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
"integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
"dev": true
}, },
"isobject": { "isobject": {
"version": "3.0.1", "version": "3.0.1",

View File

@@ -6,13 +6,11 @@
"scripts": { "scripts": {
"build": "webpack", "build": "webpack",
"start": "npm run build -- --display=errors-only && electron dist", "start": "npm run build -- --display=errors-only && electron dist",
"start:prod": "cross-env NODE_ENV=production npm start",
"test": "jest" "test": "jest"
}, },
"author": "Max Goodhart <c@chromakode.com>", "author": "Max Goodhart <c@chromakode.com>",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"cross-env": "^7.0.2",
"csvtojson": "^2.0.10", "csvtojson": "^2.0.10",
"ejs": "^3.1.3", "ejs": "^3.1.3",
"electron": "^9.0.4", "electron": "^9.0.4",

View File

@@ -41,6 +41,9 @@ async function main() {
.option('cert-dir', { .option('cert-dir', {
describe: 'Private directory to store SSL certificate in', describe: 'Private directory to store SSL certificate in',
}) })
.option('cert-production', {
describe: 'Obtain a real SSL certificate using production servers',
})
.option('email', { .option('email', {
describe: 'Email for owner of SSL certificate', describe: 'Email for owner of SSL certificate',
}) })
@@ -105,6 +108,7 @@ async function main() {
if (argv.webserver) { if (argv.webserver) {
;({ broadcastState } = await initWebServer({ ;({ broadcastState } = await initWebServer({
certDir: argv.certDir, certDir: argv.certDir,
certProduction: argv.certProduction,
email: argv.email, email: argv.email,
url: argv.webserver, url: argv.webserver,
hostname: argv.hostname, hostname: argv.hostname,

View File

@@ -79,6 +79,7 @@ function initApp({ username, password, baseURL, getInitialState, onMessage }) {
export default async function initWebServer({ export default async function initWebServer({
certDir, certDir,
certProduction,
email, email,
url: baseURL, url: baseURL,
hostname: overrideHostname, hostname: overrideHostname,
@@ -110,7 +111,7 @@ export default async function initWebServer({
dataDir: certDir, dataDir: certDir,
commonName: hostname, commonName: hostname,
email, email,
production: process.env.NODE_DEV === 'production', production: certProduction,
serverHost: overrideHostname || hostname, serverHost: overrideHostname || hostname,
}) })
server = https.createServer({ key, cert }, app.callback()) server = https.createServer({ key, cert }, app.callback())