Files
Desktop/scripts/prepare_linux_build.mjs
2026-05-13 10:21:25 -07:00

44 lines
1.2 KiB
JavaScript

// Copyright 2025 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
// @ts-check
import fs from 'node:fs';
import _ from 'lodash';
import packageJson from '../package.json' with { type: 'json' };
const TARGETS = new Set(['appimage', 'deb']);
const ARCHITECTURES = new Set(['arm64', 'x64']);
const targets = (process.argv[2] || 'deb').split(',');
if (
targets.length === 0 ||
!targets.every(target => TARGETS.has(target.toLowerCase()))
) {
console.error(
`Invalid linux targets ${targets.join(', ')}. Valid options: ${[...TARGETS].join(', ')}`
);
process.exit(1);
}
const archs = (process.argv[3] || 'x64').split(',');
if (
archs.length === 0 ||
!archs.every(arch => ARCHITECTURES.has(arch.toLowerCase()))
) {
console.error(
`Invalid linux architectures ${archs.join(', ')}. Valid options: ${[...ARCHITECTURES].join(', ')}`
);
process.exit(1);
}
console.log('prepare_linux_build: updating package.json');
// ------
const targetsWithArch = _.map(targets, target => ({ target, arch: archs }));
_.set(packageJson, 'build.linux.target', targetsWithArch);
// -------
fs.writeFileSync('./package.json', JSON.stringify(packageJson, null, ' '));