diff --git a/apps/server/src/services/project-service/ProjectService.ts b/apps/server/src/services/project-service/ProjectService.ts index 1b9d605dd..50d685921 100644 --- a/apps/server/src/services/project-service/ProjectService.ts +++ b/apps/server/src/services/project-service/ProjectService.ts @@ -37,6 +37,7 @@ import { moveCorruptFile, parseJsonFile, } from './projectServiceUtils.js'; +import { populateOntimeLogo } from '../../setup/loadOntimeLogo.js'; type ProjectState = | { @@ -113,6 +114,7 @@ async function loadProject(projectData: DatabaseModel, fileName: string, rundown * Loads the demo project */ export async function loadDemoProject(): Promise { + populateOntimeLogo(); return createProject(config.demoProject, demoDb); } diff --git a/apps/server/src/setup/index.ts b/apps/server/src/setup/index.ts index 9bcf54b5f..a6dd332fe 100644 --- a/apps/server/src/setup/index.ts +++ b/apps/server/src/setup/index.ts @@ -95,6 +95,8 @@ export const srcFiles = { translationReadme: join(srcDir.root, config.user, config.translations.directory, 'README.md'), /** Path to login */ login: join(srcDir.root, 'html/login.html'), + /** Path to ontime-logo */ + logo: join(srcDir.root, config.user, config.logo, 'ontime-logo.png'), }; /** diff --git a/apps/server/src/setup/loadOntimeLogo.ts b/apps/server/src/setup/loadOntimeLogo.ts new file mode 100644 index 000000000..c8ef3a813 --- /dev/null +++ b/apps/server/src/setup/loadOntimeLogo.ts @@ -0,0 +1,18 @@ +import { copyFileSync } from 'fs'; +import { ensureDirectory } from '../utils/fileManagement.js'; + +import { publicDir, srcFiles } from './index.js'; +import { basename, join } from 'path'; + +/** + * @description ensures directories exist and populates ontime logo + */ +export function populateOntimeLogo() { + ensureDirectory(publicDir.logoDir); + try { + const logoName = basename(srcFiles.logo); + copyFileSync(srcFiles.logo, join(publicDir.logoDir, logoName)); + } catch (_) { + /* we do not handle this */ + } +}