services/tmptsync: init

This commit is contained in:
LavaDesu 2022-02-23 21:18:15 +07:00
parent 1d6312c258
commit 0806e9ec72
Signed by: cilly
GPG key ID: 6500251E087653C9
4 changed files with 62 additions and 0 deletions

View file

@ -30,5 +30,6 @@
nginx
postgres
synapse
tmptsync
]);
}

View file

@ -18,6 +18,7 @@ in {
./services/nginx.nix
./services/postgres.nix
./services/synapse.nix
./services/tmptsync.nix
];
system = mkAttrsFromPaths [
./system/audio.nix

View file

@ -0,0 +1,30 @@
{ ... }:
let
dir = "/persist/tmptsync";
in
{
systemd = {
services = {
tmptsync-load = {
before = [ "basic.target" ];
after = [ "local-fs.target" "sysinit.target" ];
unitConfig.DefaultDependencies = false;
script = "${../../scripts/tmptsync.sh} load";
wantedBy = [ "basic.target" ];
};
tmptsync-save = {
script = "${../../scripts/tmptsync.sh} load";
wantedBy = [ "basic.target" ];
};
};
timers.tmptsync-save = {
timerConfig = {
Unit = "tmptsync-save.service";
OnBootSec = "30mn";
OnUnitActiveSec = "2h";
};
};
};
}

30
scripts/tmptsync.sh Executable file
View file

@ -0,0 +1,30 @@
#!/usr/bin/env sh
#
# Super simple script that saves clock to file and reads from it later
# Something like fake-hwclock from debian
# CC0-1.0
CMD="${1:-save}"
if [ ! -v FILE ]; then
echo 'missing $FILE'
exit 64
fi
case $CMD in
save)
date -u '+%Y-%m-%d %H:%M:%S' > $FILE
;;
load)
if [ ! -e $FILE ]; then
echo "attempted to load from nonexistent file"
exit 65
fi
NEW=$(cat $FILE)
date -u -s "$NEW"
;;
*)
echo "unknown subcommand"
exit 66
;;
esac