75 lines
1.9 KiB
JavaScript
75 lines
1.9 KiB
JavaScript
#!/usr/bin/env node
|
|
|
|
import path from 'node:path'
|
|
|
|
import {
|
|
loadBundleManifest,
|
|
renderSameOriginBundle,
|
|
writeSameOriginBundle,
|
|
} from './render-same-origin-bundle-lib.mjs'
|
|
|
|
function parseArgs(argv) {
|
|
const options = {
|
|
manifest: '',
|
|
outDir: '',
|
|
stdout: false,
|
|
summary: false,
|
|
}
|
|
|
|
for (let index = 0; index < argv.length; index += 1) {
|
|
const argument = argv[index]
|
|
const next = argv[index + 1] || ''
|
|
|
|
switch (argument) {
|
|
case '--manifest':
|
|
options.manifest = next
|
|
index += 1
|
|
break
|
|
case '--out-dir':
|
|
options.outDir = next
|
|
index += 1
|
|
break
|
|
case '--stdout':
|
|
options.stdout = true
|
|
break
|
|
case '--summary':
|
|
options.summary = true
|
|
break
|
|
default:
|
|
break
|
|
}
|
|
}
|
|
|
|
return options
|
|
}
|
|
|
|
const args = parseArgs(process.argv.slice(2))
|
|
const manifestPath = args.manifest || path.resolve(process.cwd(), 'deploy', 'hypertwist.same-origin.bundle.example.json')
|
|
const { path: loadedManifestPath, manifest } = loadBundleManifest(manifestPath)
|
|
|
|
let renderedResult = null
|
|
if (args.outDir) {
|
|
renderedResult = writeSameOriginBundle({
|
|
manifest,
|
|
outDir: args.outDir,
|
|
})
|
|
} else {
|
|
renderedResult = renderSameOriginBundle(manifest)
|
|
}
|
|
|
|
if (args.summary && renderedResult) {
|
|
process.stdout.write(`${JSON.stringify({
|
|
manifestPath: loadedManifestPath,
|
|
outputDir: renderedResult.outputDir || null,
|
|
validationReport: renderedResult.validationReport,
|
|
}, null, 2)}\n`)
|
|
} else if (args.stdout || !args.outDir) {
|
|
process.stdout.write('### website.env\n')
|
|
process.stdout.write(renderedResult.frontendEnvContent)
|
|
process.stdout.write('\n### server.env\n')
|
|
process.stdout.write(renderedResult.serverEnvContent)
|
|
process.stdout.write('\n### systemd\n')
|
|
process.stdout.write(renderedResult.systemdContent)
|
|
process.stdout.write('\n### nginx\n')
|
|
process.stdout.write(renderedResult.nginxContent)
|
|
}
|