mirror of
https://github.com/lone-cloud/prism
synced 2026-06-03 08:43:10 -07:00
32 lines
1,022 B
TypeScript
Executable file
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();
|