palemoon-bin: Add meta.updateScript
This commit is contained in:
parent
26594c44f5
commit
35aa61baf1
|
@ -14,6 +14,7 @@
|
|||
, libpulseaudio
|
||||
, makeDesktopItem
|
||||
, wrapGAppsHook
|
||||
, writeScript
|
||||
, testers
|
||||
}:
|
||||
|
||||
|
@ -21,16 +22,7 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
pname = "palemoon-bin";
|
||||
version = "33.0.0";
|
||||
|
||||
src = fetchzip {
|
||||
urls = [
|
||||
"https://rm-eu.palemoon.org/release/palemoon-${finalAttrs.version}.linux-x86_64-gtk${if withGTK3 then "3" else "2"}.tar.xz"
|
||||
"https://rm-us.palemoon.org/release/palemoon-${finalAttrs.version}.linux-x86_64-gtk${if withGTK3 then "3" else "2"}.tar.xz"
|
||||
];
|
||||
hash = if withGTK3 then
|
||||
"sha256-qZX23dsKNg5AOIaBAAmTWT6VDEl3OGz3kb3idtvJElw="
|
||||
else
|
||||
"sha256-Lz1+5I8Rj0GrBUBTJoRsatpyzkqVHZuWbKARkuWFs5U=";
|
||||
};
|
||||
src = finalAttrs.passthru.sources."gtk${if withGTK3 then "3" else "2"}";
|
||||
|
||||
preferLocalBuild = true;
|
||||
|
||||
|
@ -155,8 +147,49 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
wrapGApp $out/lib/palemoon/palemoon
|
||||
'';
|
||||
|
||||
passthru.tests.version = testers.testVersion {
|
||||
package = finalAttrs.finalPackage;
|
||||
passthru = {
|
||||
sources = let
|
||||
urlRegionVariants = buildVariant: map
|
||||
(region: "https://rm-${region}.palemoon.org/release/palemoon-${finalAttrs.version}.linux-x86_64-${buildVariant}.tar.xz")
|
||||
[
|
||||
"eu"
|
||||
"us"
|
||||
];
|
||||
in {
|
||||
gtk3 = fetchzip {
|
||||
urls = urlRegionVariants "gtk3";
|
||||
hash = "sha256-qZX23dsKNg5AOIaBAAmTWT6VDEl3OGz3kb3idtvJElw=";
|
||||
};
|
||||
gtk2 = fetchzip {
|
||||
urls = urlRegionVariants "gtk2";
|
||||
hash = "sha256-Lz1+5I8Rj0GrBUBTJoRsatpyzkqVHZuWbKARkuWFs5U=";
|
||||
};
|
||||
};
|
||||
|
||||
tests.version = testers.testVersion {
|
||||
package = finalAttrs.finalPackage;
|
||||
};
|
||||
|
||||
updateScript = writeScript "update-palemoon-bin" ''
|
||||
#!/usr/bin/env nix-shell
|
||||
#!nix-shell -i bash -p common-updater-scripts curl libxml2
|
||||
|
||||
set -eu -o pipefail
|
||||
|
||||
# Only release note announcement == finalized release
|
||||
version="$(
|
||||
curl -s 'http://www.palemoon.org/releasenotes.shtml' |
|
||||
xmllint --html --xpath 'html/body/table/tbody/tr/td/h3/text()' - 2>/dev/null | head -n1 |
|
||||
sed 's/v\(\S*\).*/\1/'
|
||||
)"
|
||||
|
||||
for variant in gtk3 gtk2; do
|
||||
# The script will not perform an update when the version attribute is up to date from previous platform run
|
||||
# We need to clear it before each run
|
||||
update-source-version palemoon-bin 0 "${lib.fakeHash}" --source-key="sources.$variant"
|
||||
update-source-version palemoon-bin "$version" --source-key="sources.$variant"
|
||||
done
|
||||
'';
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
|
|
Loading…
Reference in New Issue