diff --git a/packages/backend/src/constants.ts b/packages/backend/src/constants.ts index a9412a76..b274ca44 100644 --- a/packages/backend/src/constants.ts +++ b/packages/backend/src/constants.ts @@ -6,7 +6,6 @@ import { Settings } from "./types.js"; export const DEFAULT_SETTINGS: Settings = { maxFileSize: 2 * 1024 * 1024, // 2MB in bytes maxTrigramCount: 20000, - autoDeleteStaleRepos: true, - reindexInterval: 1000 * 60 * 60, // 1 hour in milliseconds - resyncInterval: 1000 * 60 * 60 * 24, // 1 day in milliseconds -} \ No newline at end of file + autoDeleteStaleRepos: true +} + diff --git a/packages/backend/src/environment.ts b/packages/backend/src/environment.ts index a9fee07d..1da9c691 100644 --- a/packages/backend/src/environment.ts +++ b/packages/backend/src/environment.ts @@ -11,6 +11,13 @@ export const getEnvBoolean = (env: string | undefined, defaultValue: boolean) => return env === 'true' || env === '1'; } +export const getEnvNumber = (env: number | undefined, defaultValue: number ) => { + if (!env) { + return defaultValue; + } + return env; +} + dotenv.config({ path: './.env', }); @@ -21,3 +28,5 @@ export const SOURCEBOT_INSTALL_ID = getEnv(process.env.SOURCEBOT_INSTALL_ID, 'un export const SOURCEBOT_VERSION = getEnv(process.env.SOURCEBOT_VERSION, 'unknown')!; export const POSTHOG_PAPIK = getEnv(process.env.POSTHOG_PAPIK); export const POSTHOG_HOST = getEnv(process.env.POSTHOG_HOST); +export const REINDEX_INTERVAL_MS = getEnvNumber(Number(process.env.REINDEX_INTERVAL_MS), 1000*60*60 )!; +export const RESYNC_CONFIG_INTERVAL_MS = getEnvNumber(Number(process.env.RESYNC_CONFIG_INTERVAL_MS), 1000*60*60*24 )!; diff --git a/packages/backend/src/main.ts b/packages/backend/src/main.ts index 21076965..c072879f 100644 --- a/packages/backend/src/main.ts +++ b/packages/backend/src/main.ts @@ -11,6 +11,7 @@ import { createLogger } from "./logger.js"; import { createRepository, Database, loadDB, updateRepository, updateSettings } from './db.js'; import { arraysEqualShallow, isRemotePath, measure } from "./utils.js"; import { DEFAULT_SETTINGS } from "./constants.js"; +import { REINDEX_INTERVAL_MS, RESYNC_CONFIG_INTERVAL_MS } from './environment.js'; import stripJsonComments from 'strip-json-comments'; import { indexGitRepository, indexLocalRepository } from "./zoekt.js"; import { getLocalRepoFromConfig, initLocalRepoFileWatchers } from "./local.js";