1import { join } from "node:path";2import { openBucket } from "./bucket/reader.ts";3import { startSyncLoop } from "./bucket/sync.ts";4import { createApp } from "./server/app.ts";5import { ConfigError, loadConfig } from "./server/config.ts";6import { openKeprDb } from "./server/db.ts";78try {9 const config = await loadConfig("kepr.toml");10 const kepr = openKeprDb(config.dataDir);11 startSyncLoop({12 bucket: openBucket(config.bucket),13 kepr,14 mirrorDir: join(config.dataDir, "mirror"),15 tarballDir: join(config.dataDir, "tarballs"),16 });17 18 const server = Bun.serve({ fetch: createApp(config, kepr).fetch });19 console.log(`kepr listening on ${server.url}`);20} catch (error) {21 if (!(error instanceof ConfigError)) throw error;22 console.error(`kepr: ${error.message}`);23 process.exit(1);24}