diff --git a/MMDVMHost/module.nix b/MMDVMHost/module.nix index 9bde484..0e72c94 100644 --- a/MMDVMHost/module.nix +++ b/MMDVMHost/module.nix @@ -10,17 +10,17 @@ in options.services.mmdvm_host = { enable = mkEnableOption "MMDVMHost service"; - + host_package = mkOption { - default = mmdvm_host.x86_64-linux.default; + default = mmdvm_host; type = types.package; }; firmware_package = mkOption { - default = mmdvm_firmware.x86_64-linux.default; + default = mmdvm_firmware; type = types.package; }; - + user = mkOption { type = types.str; default = "afg"; @@ -32,7 +32,7 @@ in }; config-file = mkOption { - type = types.str; + type = types.path; }; usb-tty = mkOption { @@ -44,13 +44,15 @@ in config = mkIf cfg.enable { - # List packages installed in system profile. To search, run: - # $ nix search wget environment.systemPackages = [ pkgs.stm32flash cfg.host_package ]; + systemd.tmpfiles.rules = [ + "d '/var/lib/mmdvm' 0750 ${cfg.user} ${cfg.group} - -" + ]; + systemd.services.mmdvm_host = { wantedBy = [ "multi-user.target" ]; wants = [ "network.target" ]; @@ -66,15 +68,14 @@ in }; script = '' if [ ! -e /var/lib/mmdvm/firmware-version ]; then - mkdir -p /var/lib/mmdvm touch /var/lib/mmdvm/firmware-version fi if [ "${cfg.firmware_package}" != "$(cat /var/lib/mmdvm/firmware-version)" ]; then ${pkgs.stm32flash}/bin/stm32flash -w ${cfg.firmware_package}/firmware/mmdvm_f4.bin -i ',-dtr,-rts,dtr,,:-dtr,rts,dtr' ${cfg.usb-tty} - echo "{cfg.firmware_package}" > /var/lib/mmdvm/firmware-version + echo "${cfg.firmware_package}" > /var/lib/mmdvm/firmware-version fi - exec ${cfg.package}/bin/MMDVMHost ${cfg.config-file} + exec ${cfg.host_package}/bin/MMDVMHost ${cfg.config-file} ''; }; };