texstudio: 4.8.4 -> 4.8.5 (#365076)
[NixPkgs.git] / pkgs / applications / editors / standardnotes / update.nix
bloba6110e0684de286648331dc80562ecef040c6d8f
2   writeScript,
3   lib,
4   curl,
5   runtimeShell,
6   jq,
7   coreutils,
8   moreutils,
9   nix,
10   gnused,
13 writeScript "update-standardnotes" ''
14   #!${runtimeShell}
15   PATH=${
16     lib.makeBinPath [
17       jq
18       curl
19       nix
20       coreutils
21       moreutils
22       gnused
23     ]
24   }
26   set -euo pipefail
27   set -x
29   tmpDir=$(mktemp -d)
30   srcJson=pkgs/applications/editors/standardnotes/src.json
31   jsonPath="$tmpDir"/latest
33   oldVersion=$(jq -r .version < "$srcJson")
35   curl https://api.github.com/repos/standardnotes/app/releases/latest > "$jsonPath"
37   tagName=$(jq -r .tag_name < "$jsonPath")
39   if [[ ! "$tagName" =~ "desktop" ]]; then
40     echo "latest release '$tagName' not a desktop release"
41     exit 1
42   fi
44   newVersion=$(jq -r .tag_name < "$jsonPath" | sed s,@standardnotes/desktop@,,g)
46   if [[ "$oldVersion" == "$newVersion" ]]; then
47     echo "version did not change"
48     exit 0
49   fi
51   function getDownloadUrl() {
52     jq -r ".assets[] | select(.name==\"standard-notes-$newVersion-$1.deb\") | .browser_download_url" < "$jsonPath"
53   }
55   function setJsonKey() {
56     jq "$1 = \"$2\"" "$srcJson" | sponge "$srcJson"
57   }
59   function updatePlatform() {
60     nixPlatform="$1"
61     upstreamPlatform="$2"
62     url=$(getDownloadUrl "$upstreamPlatform")
63     hash=$(nix-prefetch-url "$url" --type sha512)
64     sriHash=$(nix hash to-sri --type sha512 $hash)
65     setJsonKey .deb[\""$nixPlatform"\"].url "$url"
66     setJsonKey .deb[\""$nixPlatform"\"].hash "$sriHash"
67   }
69   updatePlatform x86_64-linux linux-amd64
70   updatePlatform aarch64-linux linux-arm64
71   setJsonKey .version "$newVersion"