Added updates for DMR ids

This commit is contained in:
Sebastian 2025-02-28 19:22:11 +01:00
parent 556daa9eca
commit dfc016b154

View file

@ -40,6 +40,10 @@ in
default = "/dev/ttyUSB0";
};
dmr-id-url = mkOption {
type = types.str;
default = "https://database.radioid.net/static/user.csv";
};
};
@ -67,6 +71,10 @@ in
RuntimeDirectory = "MMDVMHost";
};
script = ''
if [ ! -e /var/lib/mmdvm/DMRIds.dat ]; then
touch /var/lib/mmdvm/DMRIds.dat
fi
if [ ! -e /var/lib/mmdvm/firmware-version ]; then
touch /var/lib/mmdvm/firmware-version
fi
@ -78,6 +86,53 @@ in
exec ${cfg.host_package}/bin/MMDVMHost ${cfg.config-file}
'';
};
systemd.paths.mmdvm_dmr_ids = {
after = [ "mmdvm_host.service" ];
wantedBy = [ "multi-user.target" ];
pathConfig = {
PathModified = "/var/lib/mmdvm/DMRIds.dat";
Unit = "mmdvm_host_restart.service";
};
};
systemd.services.mmdvm_host_restart = {
wantedBy = [ "multi-user.target" ];
description = "MMDVMHost restart service";
serviceConfig = {
Type = "oneshot";
};
script = ''
${pkgs.systemd}/bin/systemctl restart "mmdvm_host.service"
'';
};
systemd.services.dmr_id_update = {
wants = [ "network.target" ];
after = [ "network.target" ];
description = "Update DMR ids";
startAt = "02:00:00";
serviceConfig = {
Type = "oneshot";
User = cfg.user;
Group = cfg.group;
};
script = ''
${pkgs.curl}/bin/curl "${cfg.dmr-id-url}" | \
${pkgs.gnused}/bin/sed -e 's/\t//g' | ${pkgs.gawk}/bin/awk -F"," '/,/{gsub(/ /, "", $2); printf "%s\t%s\t%s\n", $1, $2, $3}' | \
${pkgs.gnused}/bin/sed -e 's/\(.\) .*/\1/g' > /var/lib/mmdvm/DMRIds.tmp
NUMOFLINES=$(${pkgs.coreutils}/bin/wc -l /var/lib/mmdvm/DMRIds.tmp | ${pkgs.gawk}/bin/awk '{print $1}')
if [ $NUMOFLINES -gt 1 ]
then
mv /var/lib/mmdvm//DMRIds.tmp /var/lib/mmdvm/DMRIds.dat
else
rm /var/lib/mmdvm//DMRIds.tmp
fi
'';
};
};
}