From 8eae39e8e670f228e9675fb3bc432ce512560396 Mon Sep 17 00:00:00 2001 From: Chris Wells Date: Tue, 10 Sep 2024 11:21:08 -0500 Subject: Created a merge function which will probably be better than symlinkJoin. Also started writing the cli manager in haskell --- pkgs/firmware/default.nix | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) (limited to 'pkgs/firmware/default.nix') diff --git a/pkgs/firmware/default.nix b/pkgs/firmware/default.nix index 932ecf1..9c70eb1 100644 --- a/pkgs/firmware/default.nix +++ b/pkgs/firmware/default.nix @@ -1,4 +1,4 @@ -{ stdenvNoCC, fetchzip, lib, ... }: +{ stdenvNoCC, fetchzip, lib, kobo-utils, gawk, ... }: { hardware, date, version, hash ? "", ... }: stdenvNoCC.mkDerivation (finalAttrs: { pname = "kobo-firmware"; @@ -6,15 +6,35 @@ stdenvNoCC.mkDerivation (finalAttrs: { src = fetchzip { url = "https://ereaderfiles.kobo.com/firmwares/${finalAttrs.hardware}/${finalAttrs.date}/kobo-update-${finalAttrs.version}.zip"; + stripRoot = false; inherit hash; }; + nativeBuildInputs = [ + kobo-utils + gawk + ]; + outputs = [ "out" "KoboRoot" ]; - phases = "installPhase"; + phases = [ + "checkPhase" + "installPhase" + ]; + + doCheck = true; + + checkPhase = '' + KOBOVERSION="$(kobo-versionextract "$src/KoboRoot.tgz" | awk '{if ($1 == "Version:") print $2}')" + + if [[ ! "$KOBOVERSION" == "${finalAttrs.version}" ]]; then + >&2 echo "Expected version ${finalAttrs.version}, but actual firmware is version $KOBOVERSION" + exit 1 + fi + ''; installPhase = '' runHook preInstall -- cgit v1.2.3