about summary refs log tree commit diff
path: root/pkgs/applications/networking/browsers/floorp
diff options
context:
space:
mode:
authorChristoph Heiss <christoph@c8h4.io>2024-03-26 14:07:55 +0100
committerChristoph Heiss <christoph@c8h4.io>2024-03-26 14:07:55 +0100
commit1901177c9e601beff5071e32be0c1da517b0cf9b (patch)
treea60548acf44b9e3d2b670d1685e413fa67ff7737 /pkgs/applications/networking/browsers/floorp
parent9304c9ae3a38d1418c755d38d3ee6cc8cb157cad (diff)
floorp: add `updateScript`
Signed-off-by: Christoph Heiss <christoph@c8h4.io>
Diffstat (limited to 'pkgs/applications/networking/browsers/floorp')
-rw-r--r--pkgs/applications/networking/browsers/floorp/default.nix2
-rwxr-xr-xpkgs/applications/networking/browsers/floorp/update.sh38
2 files changed, 40 insertions, 0 deletions
diff --git a/pkgs/applications/networking/browsers/floorp/default.nix b/pkgs/applications/networking/browsers/floorp/default.nix
index 941accbd9434b..3824d7dee449a 100644
--- a/pkgs/applications/networking/browsers/floorp/default.nix
+++ b/pkgs/applications/networking/browsers/floorp/default.nix
@@ -31,6 +31,8 @@
     "--with-unsigned-addon-scopes=app,system"
   ];
 
+  updateScript = ./update.sh;
+
   meta = {
     description = "A fork of Firefox, focused on keeping the Open, Private and Sustainable Web alive, built in Japan";
     homepage = "https://floorp.app/";
diff --git a/pkgs/applications/networking/browsers/floorp/update.sh b/pkgs/applications/networking/browsers/floorp/update.sh
new file mode 100755
index 0000000000000..08216123c54c0
--- /dev/null
+++ b/pkgs/applications/networking/browsers/floorp/update.sh
@@ -0,0 +1,38 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p curl nix-prefetch-github jq gnused
+
+set -e
+
+owner=Floorp-Projects
+repo=Floorp
+dirname="$(dirname "$0")"
+
+updateVersion() {
+    sed -i "s/packageVersion = \"[0-9.]*\";/packageVersion = \"$1\";/g" "$dirname/default.nix"
+}
+
+updateBaseVersion() {
+    local base
+    base=$(curl -s "https://raw.githubusercontent.com/$owner/$repo/v$1/browser/config/version.txt")
+    sed -i "s/version = \"[0-9.]*\";/version = \"$base\";/g" "$dirname/default.nix"
+}
+
+updateHash() {
+    local hash
+    hash=$(nix-prefetch-github --fetch-submodules --rev "v$1" $owner $repo | jq .hash)
+    sed -i "s|hash = \"[a-zA-Z0-9\/+-=]*\";|hash = \"$hash\";|g" "$dirname/default.nix"
+}
+
+currentVersion=$(cd "$dirname" && nix eval --raw -f ../../../../.. floorp.version)
+
+latestTag=$(curl -s https://api.github.com/repos/Floorp-Projects/Floorp/releases/latest | jq -r ".tag_name")
+latestVersion="$(expr "$latestTag" : 'v\(.*\)')"
+
+if [[ "$currentVersion" == "$latestVersion" ]]; then
+    echo "Floorp is up-to-date: ${currentVersion}"
+    exit 0
+fi
+
+updateVersion "$latestVersion"
+updateBaseVersion "$latestVersion"
+updateHash "$latestVersion"