@underpostnet/underpost
Version:
Underpost Platform — end-to-end CI/CD and application-delivery toolchain CLI. Covers bare metal, Kubernetes, K3s, kubeadm, LXD, container/image orchestration, secrets, databases, cron jobs, monitoring, SSH, runners, PWA + Workbox delivery, and release orc
34 lines (27 loc) • 1.25 kB
JavaScript
import { Command } from 'commander';
import fs from 'fs-extra';
import dotenv from 'dotenv';
import { loggerFactory } from '../src/server/logger.js';
import { buildTemplate, updatePrivateTemplateRepo } from '../src/server/conf.js';
if (fs.existsSync('./engine-private/conf/dd-cron/.env.production'))
dotenv.config({ path: `./engine-private/conf/dd-cron/.env.production`, override: true });
else dotenv.config();
const logger = loggerFactory(import.meta);
const program = new Command();
program
.name('build.template')
.description('Rebuild the standalone pwa-microservices-template from scratch out of the engine source tree.')
.argument('[src-path]', 'Engine source root to sync from.', './')
.argument('[to-path]', 'Template output path.', '../pwa-microservices-template')
.option('--update-private', 'Update private template repository', false)
.action(async (srcPath, toPath, options) => {
try {
if (options.updatePrivate) return await updatePrivateTemplateRepo();
await buildTemplate({ srcPath: srcPath.replaceAll(`'`, ''), toPath: toPath.replaceAll(`'`, '') });
} catch (error) {
logger.error(error, error.stack);
process.exit(1);
}
});
await program.parseAsync();