prism/scripts/install-signal-cli.ts
2026-01-19 02:05:01 -08:00

32 lines
1,022 B
TypeScript
Executable file

import { chmod, rename } from 'node:fs/promises';
const SIGNAL_CLI_VERSION = '0.13.22';
const SIGNAL_CLI_URL = `https://github.com/AsamK/signal-cli/releases/download/v${SIGNAL_CLI_VERSION}/signal-cli-${SIGNAL_CLI_VERSION}.tar.gz`;
const SIGNAL_CLI_DIR = `${import.meta.dir}/../signal-cli`;
async function installSignalCli() {
if (await Bun.file(`${SIGNAL_CLI_DIR}/bin/signal-cli`).exists()) {
return;
}
console.log('Downloading signal-cli...');
const response = await fetch(SIGNAL_CLI_URL);
if (!response.ok) {
throw new Error(`Failed to download: ${response.statusText}`);
}
console.log('Extracting signal-cli...');
const archive = new Bun.Archive(await response.blob());
await archive.extract(`${import.meta.dir}/..`);
const extractedDir = `${import.meta.dir}/../signal-cli-${SIGNAL_CLI_VERSION}`;
await rename(extractedDir, SIGNAL_CLI_DIR);
await chmod(`${SIGNAL_CLI_DIR}/bin/signal-cli`, 0o755);
console.log('signal-cli installed successfully');
}
await installSignalCli();