about summary refs log tree commit diff
path: root/pkgs/applications/networking/browsers/floorp/update.sh
blob: 08216123c54c04a608d7ac2983cd817b3491e6d4 (plain) (blame)
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
#!/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"