From 0806e9ec72fc3f2dfeff00dfe216032fe9f15e3a Mon Sep 17 00:00:00 2001 From: LavaDesu Date: Wed, 23 Feb 2022 21:18:15 +0700 Subject: [PATCH] services/tmptsync: init --- hosts/caramel/default.nix | 1 + modules/default.nix | 1 + modules/services/tmptsync.nix | 30 ++++++++++++++++++++++++++++++ scripts/tmptsync.sh | 30 ++++++++++++++++++++++++++++++ 4 files changed, 62 insertions(+) create mode 100644 modules/services/tmptsync.nix create mode 100755 scripts/tmptsync.sh diff --git a/hosts/caramel/default.nix b/hosts/caramel/default.nix index c7204fb..44d7b7d 100644 --- a/hosts/caramel/default.nix +++ b/hosts/caramel/default.nix @@ -30,5 +30,6 @@ nginx postgres synapse + tmptsync ]); } diff --git a/modules/default.nix b/modules/default.nix index 3473a54..0cf77f3 100644 --- a/modules/default.nix +++ b/modules/default.nix @@ -18,6 +18,7 @@ in { ./services/nginx.nix ./services/postgres.nix ./services/synapse.nix + ./services/tmptsync.nix ]; system = mkAttrsFromPaths [ ./system/audio.nix diff --git a/modules/services/tmptsync.nix b/modules/services/tmptsync.nix new file mode 100644 index 0000000..5c3f4fb --- /dev/null +++ b/modules/services/tmptsync.nix @@ -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"; + }; + }; + }; +} diff --git a/scripts/tmptsync.sh b/scripts/tmptsync.sh new file mode 100755 index 0000000..e0f955a --- /dev/null +++ b/scripts/tmptsync.sh @@ -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