summaryrefslogtreecommitdiff
path: root/pkgs/by-name/si/signal-desktop/update.sh
blob: d4dca6e74ef82e7ce1d7431bc1f581a54e347c54 (about) (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p bash nix-update common-updater-scripts curl coreutils jq gclient2nix

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`"
nodeVersion="`jq -r '.engines.node' <<< $packageJson | cut -d. -f1`"
electronVersion="`jq -r '.devDependencies.electron' <<< $packageJson | cut -d. -f1`"
libsignalClientVersion=`jq -r '.dependencies."@signalapp/libsignal-client"' <<< $packageJson`
signalSqlcipherVersion=`jq -r '.dependencies."@signalapp/sqlcipher"' <<< $packageJson`
ringrtcVersion=`jq -r '.dependencies."@signalapp/ringrtc"' <<< $packageJson`
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"`"

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
nix-update signal-desktop --subpackage sticker-creator --version="$latestVersion"
sed -E -i "s/(withAppleEmojis \? )true/\1false/" $SCRIPT_DIR/package.nix
update-source-version signal-desktop \
  --ignore-same-version \
  --source-key=pnpmDeps

update-source-version signal-desktop.libsignal-node \
  "$libsignalClientVersion"
update-source-version signal-desktop.libsignal-node \
  --ignore-same-version \
  --source-key=cargoDeps.vendorStaging
update-source-version signal-desktop.libsignal-node \
  --ignore-same-version \
  --source-key=npmDeps

update-source-version signal-desktop.signal-sqlcipher \
  "$signalSqlcipherVersion"
update-source-version signal-desktop.signal-sqlcipher \
  --ignore-same-version \
  --source-key=cargoDeps.vendorStaging
update-source-version signal-desktop.signal-sqlcipher \
  --ignore-same-version \
  --source-key=pnpmDeps

update-source-version signal-desktop.ringrtc "$ringrtcVersion"
update-source-version signal-desktop.ringrtc \
  --ignore-same-version \
  --source-key=cargoDeps.vendorStaging

gclient2nix generate "https://github.com/signalapp/webrtc@$webrtcVersion" > $SCRIPT_DIR/webrtc-sources.json