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:
+14
-7
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user