nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1#!/usr/bin/env nix-shell
2#!nix-shell -i bash -p curl jq common-updater-scripts
3
4set -euo pipefail
5
6currentVersion="$(nix-instantiate --eval --raw -A session-desktop.version)"
7latestVersion="$(
8 curl -s https://api.github.com/repos/session-foundation/session-desktop/releases/latest \
9 ${GITHUB_TOKEN:+--user ":$GITHUB_TOKEN"} \
10 | jq -r .tag_name | sed 's/^v//'
11)"
12if [ "$currentVersion" = "$latestVersion" ]; then
13 echo "Already up-to-date"
14 exit 0
15fi
16
17yarnLock="$(curl -s https://raw.githubusercontent.com/session-foundation/session-desktop/v$latestVersion/yarn.lock)"
18depVersion() {
19 name="$(echo "$1" | sed 's/\//\\&/g')"
20 echo "$yarnLock" | awk '/^"?'"$name"'@/ {flag=1; next} flag && /^ version "[^"]+"/ {match($0, /^ version "([^"]+)"/, a); print a[1]; exit}' -
21}
22
23update-source-version session-desktop.passthru.libsession-util.nodejs "$(depVersion libsession_util_nodejs)"
24
25downloadJs="$(curl -s https://raw.githubusercontent.com/signalapp/better-sqlite3/v$(depVersion @signalapp/better-sqlite3)/deps/download.js)"
26sqlDepVersion() {
27 echo "$downloadJs" | awk "match(\$0, /^const ${1}_VERSION = '([0-9.]+)['-]/, a) {print a[1]}" -
28}
29
30update-source-version session-desktop.passthru.sqlcipher-src "$(sqlDepVersion SQLCIPHER)"
31update-source-version session-desktop.passthru.signal-sqlcipher-extension "$(sqlDepVersion EXTENSION)"
32
33update-source-version session-desktop "$latestVersion"