2025-03-26 16:58:46 +01:00
|
|
|
#!/usr/bin/env nix-shell
|
2025-04-08 16:26:28 +02:00
|
|
|
#!nix-shell -i bash -p bash nix-update common-updater-scripts curl coreutils jq gclient2nix
|
2025-03-26 16:58:46 +01:00
|
|
|
|
|
|
|
|
set -ex
|
|
|
|
|
|
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
|
|
|
|
|
|
|
|
|
|
curl_github() {
|
|
|
|
|
curl ${GITHUB_TOKEN:+" -u \":$GITHUB_TOKEN\""} "$@"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
releaseInfo="`curl_github \
|
|
|
|
|
"https://api.github.com/repos/signalapp/Signal-Desktop/releases/latest"`"
|
|
|
|
|
|
|
|
|
|
releaseTag="`jq -r ".tag_name" <<< $releaseInfo`"
|
|
|
|
|
releaseDate="`jq -r ".created_at" <<< $releaseInfo`"
|
|
|
|
|
releaseEpoch=`date -d $releaseDate +%s`
|
|
|
|
|
|
|
|
|
|
packageJson="`curl_github "https://raw.githubusercontent.com/signalapp/Signal-Desktop/refs/tags/$releaseTag/package.json"`"
|
|
|
|
|
|
|
|
|
|
latestVersion="`jq -r '.version' <<< $packageJson`"
|
2025-04-08 16:26:28 +02:00
|
|
|
nodeVersion="`jq -r '.engines.node' <<< $packageJson | cut -d. -f1`"
|
|
|
|
|
electronVersion="`jq -r '.devDependencies.electron' <<< $packageJson | cut -d. -f1`"
|
2025-03-26 16:58:46 +01:00
|
|
|
libsignalClientVersion=`jq -r '.dependencies."@signalapp/libsignal-client"' <<< $packageJson`
|
2025-04-10 18:44:34 +02:00
|
|
|
signalSqlcipherVersion=`jq -r '.dependencies."@signalapp/sqlcipher"' <<< $packageJson`
|
2025-03-26 16:58:46 +01:00
|
|
|
ringrtcVersion=`jq -r '.dependencies."@signalapp/ringrtc"' <<< $packageJson`
|
2025-04-08 16:26:28 +02:00
|
|
|
ringrtcVersionProperties="`curl_github "https://raw.githubusercontent.com/signalapp/ringrtc/refs/tags/v$ringrtcVersion/config/version.properties"`"
|
|
|
|
|
webrtcVersion="`grep --only-matching "^webrtc.version=.*$" <<< $ringrtcVersionProperties | sed "s/webrtc.version=//g"`"
|
2025-03-26 16:58:46 +01:00
|
|
|
|
|
|
|
|
sed -E -i "s/(nodejs_)../\1$nodeVersion/" $SCRIPT_DIR/package.nix
|
|
|
|
|
sed -E -i "s/(electron_)../\1$electronVersion/" $SCRIPT_DIR/package.nix
|
|
|
|
|
sed -E -i "s/(SOURCE_DATE_EPOCH = )[0-9]+/\1$releaseEpoch/" $SCRIPT_DIR/package.nix
|
|
|
|
|
|
|
|
|
|
sed -E -i "s/(withAppleEmojis \? )false/\1true/" $SCRIPT_DIR/package.nix
|
2025-04-16 14:43:39 +02:00
|
|
|
nix-update signal-desktop --subpackage sticker-creator --version="$latestVersion"
|
2025-03-26 16:58:46 +01:00
|
|
|
sed -E -i "s/(withAppleEmojis \? )true/\1false/" $SCRIPT_DIR/package.nix
|
2025-04-16 14:43:39 +02:00
|
|
|
update-source-version signal-desktop \
|
2025-03-26 16:58:46 +01:00
|
|
|
--ignore-same-version \
|
|
|
|
|
--source-key=pnpmDeps
|
|
|
|
|
|
2025-04-16 14:43:39 +02:00
|
|
|
update-source-version signal-desktop.libsignal-node \
|
2025-03-26 16:58:46 +01:00
|
|
|
"$libsignalClientVersion"
|
2025-04-16 14:43:39 +02:00
|
|
|
update-source-version signal-desktop.libsignal-node \
|
2025-03-26 16:58:46 +01:00
|
|
|
--ignore-same-version \
|
|
|
|
|
--source-key=cargoDeps.vendorStaging
|
2025-04-16 14:43:39 +02:00
|
|
|
update-source-version signal-desktop.libsignal-node \
|
2025-03-26 16:58:46 +01:00
|
|
|
--ignore-same-version \
|
|
|
|
|
--source-key=npmDeps
|
|
|
|
|
|
2025-04-16 14:43:39 +02:00
|
|
|
update-source-version signal-desktop.signal-sqlcipher \
|
2025-04-10 18:44:34 +02:00
|
|
|
"$signalSqlcipherVersion"
|
2025-04-16 14:43:39 +02:00
|
|
|
update-source-version signal-desktop.signal-sqlcipher \
|
2025-04-10 18:44:34 +02:00
|
|
|
--ignore-same-version \
|
|
|
|
|
--source-key=cargoDeps.vendorStaging
|
2025-04-16 14:43:39 +02:00
|
|
|
update-source-version signal-desktop.signal-sqlcipher \
|
2025-04-10 18:44:34 +02:00
|
|
|
--ignore-same-version \
|
|
|
|
|
--source-key=pnpmDeps
|
|
|
|
|
|
2025-04-16 14:43:39 +02:00
|
|
|
update-source-version signal-desktop.ringrtc "$ringrtcVersion"
|
|
|
|
|
update-source-version signal-desktop.ringrtc \
|
2025-04-08 16:26:28 +02:00
|
|
|
--ignore-same-version \
|
|
|
|
|
--source-key=cargoDeps.vendorStaging
|
|
|
|
|
|
|
|
|
|
gclient2nix generate "https://github.com/signalapp/webrtc@$webrtcVersion" > $SCRIPT_DIR/webrtc-sources.json
|