From 5cb16c34a8c5b803ec723934c1dc828c0e8e3bad Mon Sep 17 00:00:00 2001 From: Chris Wells Date: Tue, 10 Sep 2024 11:52:55 -0500 Subject: Trying to get everything to actually work --- modules/build/default.nix | 5 ++++ modules/build/firmware.nix | 60 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 65 insertions(+) create mode 100644 modules/build/default.nix create mode 100644 modules/build/firmware.nix (limited to 'modules/build') diff --git a/modules/build/default.nix b/modules/build/default.nix new file mode 100644 index 0000000..be3f3b0 --- /dev/null +++ b/modules/build/default.nix @@ -0,0 +1,5 @@ +{ + imports = [ + ./firmware.nix + ]; +} diff --git a/modules/build/firmware.nix b/modules/build/firmware.nix new file mode 100644 index 0000000..673c379 --- /dev/null +++ b/modules/build/firmware.nix @@ -0,0 +1,60 @@ +{ config, pkgs, lib, ... }: +with builtins // lib; +let + cfg = config.build; +in { + options.build = { + firmware = { + checkDevice = mkOption { + internal = true; + readOnly = true; + type = types.package; + default = pkgs.writeShellApplication { + name = "check-firmware"; + runtimeInputs = with pkgs; [ + kobo-utils + ]; + text = '' + echo "hi" + ''; + }; + }; + + bundle = + let + b = pkgs.runCommandLocal "package-firmware" {} '' + cp -r "${config.firmware.package.out}" $out + tar czvf $out/KoboRoot.tgz --directory="${config.firmware.package.KoboRoot}" + ''; + in pkgs.runCommandLocal "bundle-firmware" {} '' + tar czvf $out --directory "${b}" + ''; + + + deploy = pkgs.writeShellApplication { + name = "deploy-firmware"; + runtimeInputs = with pkgs; [ + gnutar + kobo-utils + ]; + text = '' + echo "Looking for kobo" + KOBOPATH="$(kobo-find -f -w)" + + if [ -z "$KOBOPATH" ]; then + >&2 echo "Cannot locate kobo device" + exit 1 + fi + + echo "Found kobo device at $KOBOPATH" + + echo "Placing firmware on device" + + tar xzvf "${cfg.fimware.bundle}" --directory="$KOBOPATH/.kobo/" + + echo "Successfully installed kobo firmware. Please eject your device so it can install." + ''; + }; + }; + }; +} -- cgit v1.2.3