From b96f94887953deeb6e5888bdb7114315016147e7 Mon Sep 17 00:00:00 2001 From: Yves Fischer Date: Thu, 25 Aug 2022 23:35:20 +0200 Subject: simplify nix build config --- flake.nix | 37 ++++++++++++++++++++++++++++++++----- 1 file changed, 32 insertions(+), 5 deletions(-) (limited to 'flake.nix') diff --git a/flake.nix b/flake.nix index 87e4b9c..c187dd9 100644 --- a/flake.nix +++ b/flake.nix @@ -1,10 +1,37 @@ { - inputs.nixpkgs.url = "nixpkgs/nixos-20.09"; - outputs = { self, nixpkgs }: - with import nixpkgs { system = "x86_64-linux"; }; + outputs = { ... }: + let + batteriewarner = { lib, rustPlatform, makeWrapper }: + rustPlatform.buildRustPackage rec { + name = "batteriewarner-${version}"; + version = "2022-08-25"; + src = ./.; + cargoLock.lockFile = ./Cargo.lock; + buildInputs = [ makeWrapper ]; + meta = { + description = "Display low battery status using the power led of Thinkpads X-series"; + homepage = https://github.com/yvesf/batteriewarner; + platforms = lib.platforms.all; + }; + }; + in { - defaultPackage.x86_64-linux = callPackage ./. { }; - nixosModule = { config }: { imports = [ ./module.nix ]; }; + nixosModule = { config, lib, pkgs, ... }: + let + package = pkgs.callPackage batteriewarner { }; + cfg = config.services.batteriewarner; + in + { + options.services.batteriewarner.enable = lib.mkEnableOption "Batteriewarner"; + config = lib.mkIf cfg.enable { + systemd.services.batteriewarner = { + enable = true; + description = "Batteriewarner"; + wantedBy = [ "multi-user.target" ]; + serviceConfig.ExecStart = "${package}/bin/batteriewarner"; + }; + }; + }; }; } -- cgit v1.2.1