nixos zwave?

This commit is contained in:
Chris Dombroski 2024-08-20 21:49:04 -04:00
parent 12df3009d1
commit 829fec78d6
5 changed files with 56 additions and 1 deletions

View file

@ -11,6 +11,7 @@
}; };
nixpkgs.overlays = [ nixpkgs.overlays = [
(import ../../overlays/recyclarr.nix) (import ../../overlays/recyclarr.nix)
(import ../../overlays/zwave-js-ui.nix)
]; ];
system.autoUpgrade = { system.autoUpgrade = {
enable = true; enable = true;

30
modules/zwave-js-ui.nix Normal file
View file

@ -0,0 +1,30 @@
{ config, lib, pkgs, ... }:
let
inherit (lib) mkIf mkEnableOption mkOption types;
cfg = config.services.zwave-js-ui;
in
{
options.services.zwave-js-ui = {
enable = mkEnableOption "zwave-js-ui";
store = mkOption {
type = types.path;
default = "/var/lib/zwave-js-ui";
description = ''
Where zwave-js-ui information will be stored
'';
};
};
config = mkIf cfg.enable {
assertions = [{
assertion = !config.services.zwave-js.enable;
message = "zwave-js-ui conflicts with zwave-js";
}];
systemd.services.zwave-js-ui = {
environment = {
STORE_DIR = cfg.store;
ZWAVEJS_EXTERNAL_CONFIG = "${cfg.store}/.config-db";
};
script = "${pkgs.zwave-js-ui}/bin/zwave-js-ui";
};
};
}

4
overlays/zwave-js-ui.nix Normal file
View file

@ -0,0 +1,4 @@
final: prev:
{
zwave-js-ui = ( prev.callPackage ../pkgs/zwave-js-ui.nix {} );
}

21
pkgs/zwave-js-ui.nix Normal file
View file

@ -0,0 +1,21 @@
{ lib, buildNpmPackage, fetchFromGitHub }:
buildNpmPackage rec {
pname = "zwave-js-ui";
version = "9.17.0";
src = fetchFromGitHub {
owner = "zwave-js";
repo = pname;
rev = "v${version}";
hash = "sha256-GCBVRjDpiC8WhPHFwKnzyO5I09TDx3IbxpUZvwDu2u0=";
};
npmDepsHash = "sha256-YtHiBVz2eyHyJkr4K1NZXVZKdZTmdGMDFGpEC0QUCMU=";
meta = {
description = "Full featured Z-Wave Control Panel and MQTT Gateway.";
homepage = "https://zwave-js.github.io/zwave-js-ui/";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [cdombroski];
};
}

View file

@ -355,4 +355,3 @@
system.stateVersion = "23.11"; # Did you read the comment? system.stateVersion = "23.11"; # Did you read the comment?
zramSwap.enable = true; zramSwap.enable = true;
} }