Fixed saving of firmware version

This commit is contained in:
Sebastian 2025-01-30 18:31:28 +01:00
parent fbeb7bc213
commit f118b4545f

View file

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