now uses formatters instead of hardcoded chain off individual configs

added formatter type to associate a service with their templates and
filepaths
This commit is contained in:
2026-07-16 02:04:04 +02:00
parent 344608f056
commit 41c37156af
7 changed files with 68 additions and 13 deletions
+14 -7
View File
@@ -1,14 +1,10 @@
import { services } from "./config";
import { formatcaddyfile } from "./formatter";
import type { Service } from "./types";
import { formatters } from "./formatters";
import { ConfigValidator } from "./validator";
import { ConfigWriter } from "./writer";
console.log("Hello via Bun!");
// const vpsservices: Service[] = services.filter(service => service.host.id == "vps-ovh");
// console.log(vpsservices);
/**
entry point / manager
**/
@@ -16,12 +12,23 @@ async function main() {
try {
console.log("starting caddy config");
ConfigValidator.validate(services);
ConfigValidator.validatecaddyfile(services);
const output = formatcaddyfile(services);
await ConfigWriter.writeLocal("Caddyfile", output);
await ConfigWriter.writeLocal("output/etc/caddy/Caddyfile", output);
//check for associated formatters for each provider service definition
for ( const srvc of services ) {
const srvcformatters = formatters.filter(el => el.serviceid == srvc.name);
for (const formatter of srvcformatters) {
const content = formatter.format(srvc);
const path = formatter.outputpath(srvc);
await ConfigWriter.writeLocal(path, content);
}
}
console.log("completed succesfully");
} catch (error) {
console.error("error", error);