mirror of
https://github.com/jeffvli/feishin.git
synced 2026-05-06 20:10:12 +02:00
2c546867a8
* change "Fields" query parameter to array * platformToTarget.key() -> to array
46 lines
1.6 KiB
JavaScript
46 lines
1.6 KiB
JavaScript
import { execSync } from 'child_process';
|
|
import path from 'path';
|
|
import { fileURLToPath } from 'url';
|
|
|
|
const __filename = fileURLToPath(import.meta.url);
|
|
const __dirname = path.dirname(__filename);
|
|
|
|
/**
|
|
* Electron-builder afterAllArtifactBuild hook
|
|
* Runs the app stream update script only for Linux builds
|
|
* Returns the metainfo file path to be included in published artifacts
|
|
*/
|
|
|
|
// This is not a typescript file, and is called by electron-builder, so we cannot use typescript features here.
|
|
// eslint-disable-next-line @typescript-eslint/explicit-function-return-type
|
|
export default async function afterAllArtifactBuild(buildResult) {
|
|
// Check if this build includes Linux as a target
|
|
const isLinux = Array.from(buildResult.platformToTargets.keys()).some(
|
|
(platform) => platform.name === 'linux',
|
|
);
|
|
|
|
if (isLinux) {
|
|
const updateScriptPath = path.join(__dirname, 'update-app-stream.mjs');
|
|
const projectRoot = path.resolve(__dirname, '..');
|
|
const metainfoFile = path.resolve(projectRoot, 'org.jeffvli.feishin.metainfo.xml');
|
|
|
|
console.log('Running app stream update for Linux build...');
|
|
|
|
try {
|
|
execSync(`node ${updateScriptPath} --replace-if-version-missing`, {
|
|
cwd: projectRoot,
|
|
stdio: 'inherit',
|
|
});
|
|
|
|
// Return the metainfo file to be included in published artifacts
|
|
return [metainfoFile];
|
|
} catch (error) {
|
|
console.error('Failed to update app stream:', error.message);
|
|
throw error;
|
|
}
|
|
}
|
|
|
|
// Return empty array if not a Linux build
|
|
return [];
|
|
}
|