Spaces:
Sleeping
Sleeping
| // This script configures the .env.development.local file with additional environment variables to configure HTTPS using the ASP.NET Core | |
| // development certificate in the webpack development proxy. | |
| const fs = require('fs'); | |
| const path = require('path'); | |
| const baseFolder = | |
| process.env.APPDATA !== undefined && process.env.APPDATA !== '' | |
| ? `${process.env.APPDATA}/ASP.NET/https` | |
| : `${process.env.HOME}/.aspnet/https`; | |
| const certificateArg = process.argv.map(arg => arg.match(/--name=(?<value>.+)/i)).filter(Boolean)[0]; | |
| const certificateName = certificateArg ? certificateArg.groups.value : process.env.npm_package_name; | |
| if (!certificateName) { | |
| console.error('Invalid certificate name. Run this script in the context of an npm/yarn script or pass --name=<<app>> explicitly.') | |
| process.exit(-1); | |
| } | |
| const certFilePath = path.join(baseFolder, `${certificateName}.pem`); | |
| const keyFilePath = path.join(baseFolder, `${certificateName}.key`); | |
| if (!fs.existsSync('.env.development.local')) { | |
| fs.writeFileSync( | |
| '.env.development.local', | |
| `SSL_CRT_FILE=${certFilePath} | |
| SSL_KEY_FILE=${keyFilePath}` | |
| ); | |
| } else { | |
| let lines = fs.readFileSync('.env.development.local') | |
| .toString() | |
| .split('\n'); | |
| let hasCert, hasCertKey = false; | |
| for (const line of lines) { | |
| if (/SSL_CRT_FILE=.*/i.test(line)) { | |
| hasCert = true; | |
| } | |
| if (/SSL_KEY_FILE=.*/i.test(line)) { | |
| hasCertKey = true; | |
| } | |
| } | |
| if (!hasCert) { | |
| fs.appendFileSync( | |
| '.env.development.local', | |
| `\nSSL_CRT_FILE=${certFilePath}` | |
| ); | |
| } | |
| if (!hasCertKey) { | |
| fs.appendFileSync( | |
| '.env.development.local', | |
| `\nSSL_KEY_FILE=${keyFilePath}` | |
| ); | |
| } | |
| } | |