Skip to content

Commit

Permalink
breitbandmessung: 3.3.0 -> 3.6.0
Browse files Browse the repository at this point in the history
Things changed:
- Unpin electron version. Upstream updates usually fix electron incompatibilities and we also have a test which can detect them. (#295770)
- Add updater script. It scrapes the upstream website for the current version number. Lets hope the website structure doesn't change too much.
- Update to the latest version
  • Loading branch information
B4dM4n committed Mar 14, 2024
1 parent 2dbc8f6 commit fe98800
Show file tree
Hide file tree
Showing 3 changed files with 48 additions and 13 deletions.
21 changes: 8 additions & 13 deletions pkgs/applications/networking/breitbandmessung/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
, fetchurl
, asar
, dpkg
, electron_24
, electron
, makeWrapper
, nixosTests
, undmg
Expand All @@ -12,14 +12,11 @@
let
inherit (stdenv.hostPlatform) system;

version = "3.3.0";
sources = import ./sources.nix;

systemArgs = rec {
x86_64-linux = rec {
src = fetchurl {
url = "https://download.breitbandmessung.de/bbm/Breitbandmessung-${version}-linux.deb";
sha256 = "sha256-12mbdxklje9msnRtNk1RAtIg3OCybev/vUersDZj2i4=";
};
x86_64-linux = {
src = fetchurl sources.x86_64-linux;

nativeBuildInputs = [
asar
Expand Down Expand Up @@ -49,7 +46,7 @@ let
}
EOF
makeWrapper ${electron_24}/bin/electron $out/bin/breitbandmessung \
makeWrapper ${electron}/bin/electron $out/bin/breitbandmessung \
--add-flags $out/share/breitbandmessung/resources/build/electron.js
# Fix the desktop link
Expand All @@ -59,10 +56,7 @@ let
};

x86_64-darwin = {
src = fetchurl {
url = "https://download.breitbandmessung.de/bbm/Breitbandmessung-${version}-mac.dmg";
sha256 = "sha256-a27R/N13i4qU2znTKz+LGxSdgSzJ0MzIHeiPHyRd65k=";
};
src = fetchurl sources.x86_64-darwin;

nativeBuildInputs = [ undmg ];

Expand All @@ -79,9 +73,10 @@ let
in
stdenv.mkDerivation ({
pname = "breitbandmessung";
inherit version;
inherit (sources) version;

passthru.tests = { inherit (nixosTests) breitbandmessung; };
passthru.updateScript = ./update.sh;

meta = with lib; {
description = "Broadband internet speed test app from the german Bundesnetzagentur";
Expand Down
11 changes: 11 additions & 0 deletions pkgs/applications/networking/breitbandmessung/sources.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
version = "3.6.0";
x86_64-linux = {
url = "https://download.breitbandmessung.de/bbm/Breitbandmessung-3.6.0-linux.deb";
sha256 = "sha256-jUp4Q9tiR/WLkTNHz97j0eE/WwcfFF3ut0S9N4M75Oc=";
};
x86_64-darwin = {
url = "https://download.breitbandmessung.de/bbm/Breitbandmessung-3.6.0-mac.dmg";
sha256 = "sha256-ZvTig1/fm1GRoOYuTRBiZ8j4CRbZSa95q6a0sxo39Gs=";
};
}
29 changes: 29 additions & 0 deletions pkgs/applications/networking/breitbandmessung/update.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p curl jq nix ripgrep

set -xeu -o pipefail

PACKAGE_DIR="$(realpath "$(dirname "$0")")"

current="$(nix eval -f "$PACKAGE_DIR/sources.nix" --raw version || :)"
latest="$(curl -sS https://breitbandmessung.de/desktop-app | \
rg '.*Aktuelle Version der Desktop-App lautet:\s*([.0-9]+).*' -r '$1')"

if [[ $current != $latest ]]; then
linux_hash="$(nix store prefetch-file --json https://download.breitbandmessung.de/bbm/Breitbandmessung-${latest}-linux.deb | jq -r .hash)"
darwin_hash="$(nix store prefetch-file --json https://download.breitbandmessung.de/bbm/Breitbandmessung-${latest}-mac.dmg | jq -r .hash)"

cat <<EOF >"$PACKAGE_DIR/sources.nix"
{
version = "${latest}";
x86_64-linux = {
url = "https://download.breitbandmessung.de/bbm/Breitbandmessung-${latest}-linux.deb";
sha256 = "${linux_hash}";
};
x86_64-darwin = {
url = "https://download.breitbandmessung.de/bbm/Breitbandmessung-${latest}-mac.dmg";
sha256 = "${darwin_hash}";
};
}
EOF
fi

0 comments on commit fe98800

Please sign in to comment.