From 21d3d395039ec855d062a5ee5e5b43e2d858f402 Mon Sep 17 00:00:00 2001 From: Stefan Dej Date: Sat, 1 Jul 2023 08:41:43 +0200 Subject: [PATCH] refactor: build version file for moonraker (#1449) --- src/plugins/build-release_info.ts | 31 +++++++++++++++++++++++++++++++ vite.config.ts | 2 ++ 2 files changed, 33 insertions(+) create mode 100644 src/plugins/build-release_info.ts diff --git a/src/plugins/build-release_info.ts b/src/plugins/build-release_info.ts new file mode 100644 index 000000000..7cafea2f9 --- /dev/null +++ b/src/plugins/build-release_info.ts @@ -0,0 +1,31 @@ +import fs from 'fs' +import path from 'path' +import { version } from '../../package.json' +import { PluginOption } from 'vite' + +/** + * Custom build plugin to write the version in a dedicated release_info.json file after bundling + */ + +export default function buildReleaseInfo(): PluginOption { + return { + name: 'build-release_info', + writeBundle: () => { + setImmediate(async () => { + const versionIdentifier = version.toString() + const releaseInfoFile = await fs.promises.open( + path.resolve(__dirname, '../../dist/release_info.json'), + 'w' + ) + await releaseInfoFile.writeFile( + JSON.stringify({ + project_name: 'mainsail', + project_owner: 'mainsail-crew', + version: `v${versionIdentifier}`, + }) + ) + await releaseInfoFile.close() + }) + }, + } +} diff --git a/vite.config.ts b/vite.config.ts index 44ba88c66..acf4f2b9a 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -8,6 +8,7 @@ import checker from 'vite-plugin-checker' import path from 'path' import buildVersion from './src/plugins/build-version' +import buildReleaseInfo from './src/plugins/build-release_info' import { VitePWA, VitePWAOptions } from 'vite-plugin-pwa' const PWAConfig: Partial = { @@ -66,6 +67,7 @@ export default defineConfig({ plugins: [ VitePWA(PWAConfig), buildVersion(), + buildReleaseInfo(), vue(), loadVersion(), checker({ typescript: true }),