Some checks failed
Periodic Merges (6h) / master → staging-nixos (push) Failing after 12m50s
Periodic Merges (6h) / master → staging-next (push) Failing after 12m54s
Periodic Merges (24h) / merge-base(master,staging) → haskell-updates (push) Failing after 11m54s
Periodic Merges (6h) / staging-next → staging (push) Failing after 12m13s
Periodic Merges (24h) / staging-next-25.05 → staging-25.05 (push) Failing after 13m24s
Periodic Merges (24h) / release-25.05 → staging-next-25.05 (push) Failing after 14m28s
60 lines
1.5 KiB
Nix
60 lines
1.5 KiB
Nix
{
|
|
writeScript,
|
|
lib,
|
|
xidel,
|
|
common-updater-scripts,
|
|
coreutils,
|
|
gnused,
|
|
gnugrep,
|
|
curl,
|
|
gnupg,
|
|
attrPath,
|
|
runtimeShell,
|
|
baseUrl ? "https://archive.mozilla.org/pub/firefox/releases/",
|
|
versionPrefix ? "",
|
|
versionSuffix ? "",
|
|
versionKey ? "version",
|
|
}:
|
|
|
|
writeScript "update-${attrPath}" ''
|
|
#!${runtimeShell}
|
|
PATH=${
|
|
lib.makeBinPath [
|
|
common-updater-scripts
|
|
coreutils
|
|
curl
|
|
gnugrep
|
|
gnupg
|
|
gnused
|
|
xidel
|
|
]
|
|
}
|
|
|
|
set -eux
|
|
HOME=`mktemp -d`
|
|
export GNUPGHOME=`mktemp -d`
|
|
curl https://keys.openpgp.org/vks/v1/by-fingerprint/09BEED63F3462A2DFFAB3B875ECB6497C1A20256 | gpg --import -
|
|
|
|
url=${baseUrl}
|
|
|
|
# retriving latest released version
|
|
# - extracts all links from the $url
|
|
# - extracts lines only with number and dots followed by a slash
|
|
# - removes trailing slash
|
|
# - sorts everything with semver in mind
|
|
# - picks up latest release
|
|
version=`xidel -s $url --extract "//a" | \
|
|
grep "^${versionPrefix}[0-9.]*${versionSuffix}/$" | \
|
|
sed s/[/]$// | \
|
|
sort --version-sort | \
|
|
tail -n 1`
|
|
|
|
curl --silent --show-error -o "$HOME"/shasums "$url$version/SHA512SUMS"
|
|
curl --silent --show-error -o "$HOME"/shasums.asc "$url$version/SHA512SUMS.asc"
|
|
gpgv --keyring="$GNUPGHOME"/pubring.kbx "$HOME"/shasums.asc "$HOME"/shasums
|
|
|
|
hash=$(grep '\.source\.tar\.xz$' "$HOME"/shasums | grep '^[^ ]*' -o)
|
|
|
|
update-source-version ${attrPath} "$version" "$hash" "" --version-key=${versionKey}
|
|
''
|