diff --git a/apps/server/src/services/assets.ts b/apps/server/src/services/assets.ts deleted file mode 100644 index 782ca02d7..000000000 --- a/apps/server/src/services/assets.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { join } from "path"; - -const ASSET_ROOT_DIR = process.env.SERVER_ASSET_ROOT_DIR; -if (!ASSET_ROOT_DIR) { - console.error("Missing SERVER_ASSET_ROOT_DIR env."); - process.exit(1); -} - -/** Contains database initialization data such as the demo database and the schema. */ -export const DB_INIT_DIR = join(ASSET_ROOT_DIR, "db") diff --git a/apps/server/src/services/resource_dir.ts b/apps/server/src/services/resource_dir.ts index c4ecf757f..35c056af2 100644 --- a/apps/server/src/services/resource_dir.ts +++ b/apps/server/src/services/resource_dir.ts @@ -6,8 +6,15 @@ export const RESOURCE_DIR = path.join(getResourceDir(), "assets"); // where the "trilium" executable is const ELECTRON_APP_ROOT_DIR = path.resolve(RESOURCE_DIR, "../.."); +const DB_INIT_DIR = path.resolve(RESOURCE_DIR, "db"); + +if (!fs.existsSync(DB_INIT_DIR)) { + console.error(`Could not find DB initialization directory: ${DB_INIT_DIR}`); + process.exit(1); +} export default { RESOURCE_DIR, + DB_INIT_DIR, ELECTRON_APP_ROOT_DIR }; diff --git a/apps/server/src/services/sql_init.ts b/apps/server/src/services/sql_init.ts index 0cc7bb255..9fc9ba2e5 100644 --- a/apps/server/src/services/sql_init.ts +++ b/apps/server/src/services/sql_init.ts @@ -1,5 +1,6 @@ import log from "./log.js"; import fs from "fs"; +import resourceDir from "./resource_dir.js"; import sql from "./sql.js"; import { isElectron, deferred } from "./utils.js"; import optionService from "./options.js"; @@ -16,7 +17,6 @@ import zipImportService from "./import/zip.js"; import password from "./encryption/password.js"; import backup from "./backup.js"; import eventService from "./events.js"; -import { DB_INIT_DIR } from "./assets.js"; export const dbReady = deferred(); @@ -75,8 +75,8 @@ async function createInitialDatabase(skipDemoDb?: boolean) { throw new Error("DB is already initialized"); } - const schema = fs.readFileSync(`${DB_INIT_DIR}/schema.sql`, "utf-8"); - const demoFile = (!skipDemoDb ? fs.readFileSync(`${DB_INIT_DIR}/demo.zip`) : null); + const schema = fs.readFileSync(`${resourceDir.DB_INIT_DIR}/schema.sql`, "utf-8"); + const demoFile = (!skipDemoDb ? fs.readFileSync(`${resourceDir.DB_INIT_DIR}/demo.zip`) : null); let rootNote!: BNote; @@ -153,7 +153,7 @@ async function createDatabaseForSync(options: OptionRow[], syncServerHost = "", throw new Error("DB is already initialized"); } - const schema = fs.readFileSync(`${DB_INIT_DIR}/schema.sql`, "utf8"); + const schema = fs.readFileSync(`${resourceDir.DB_INIT_DIR}/schema.sql`, "utf8"); // We have to import async since options init requires keyboard actions which require translations. const optionsInitService = (await import("./options_init.js")).default;