12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- #!/usr/local/bin/node
- import { execSync, spawn } from 'child_process';
- import fs from 'fs';
- import process from 'process';
- function runChildProcessWithPrefix(command, args, prefix) {
- const childProcess = spawn(command, args);
- childProcess.stdout.on('data', (data) => {
- const output = data.toString().trim().split('\n');
- output.forEach((line) => {
- console.log(`${prefix} | ${line}`);
- });
- });
- childProcess.stderr.on('data', (data) => {
- const error = data.toString().trim().split('\n');
- error.forEach((line) => {
- console.error(`${prefix} | ${line}`);
- });
- });
- childProcess.on('close', (code) => {
- console.log(`${prefix} Child process exited with code ${code}`);
- });
- childProcess.on('error', (stuff) => {
- console.log('error');
- console.log(stuff);
- });
- return childProcess;
- }
- const envFileContent = Object.entries(process.env)
- .filter(([env]) => env.startsWith('VITE_'))
- .map(
- ([env, val]) =>
- `${env}=${val.startsWith('"') && val.endsWith('"') ? val : `"${val}"`}`
- )
- .join('\n');
- fs.writeFileSync('build.env', envFileContent);
- execSync(`npx import-meta-env -x build.env -e build.env -p "/site/**/*"`);
- fs.rmSync('build.env');
- const caddyFileName =
- process.env.ENABLE_SUBPATH_BASED_ACCESS === 'true'
- ? 'sh-admin-subpath-access.Caddyfile'
- : 'sh-admin-multiport-setup.Caddyfile';
- const caddyProcess = runChildProcessWithPrefix(
- 'caddy',
- ['run', '--config', `/etc/caddy/${caddyFileName}`, '--adapter', 'caddyfile'],
- 'App/Admin Dashboard Caddy'
- );
- caddyProcess.on('exit', (code) => {
- console.log(`Exiting process because Caddy Server exited with code ${code}`);
- process.exit(code);
- });
- process.on('SIGINT', () => {
- console.log('SIGINT received, exiting...');
- caddyProcess.kill('SIGINT');
- process.exit(0);
- });
|