make kitaab update a user unit, use user path

This commit is contained in:
Anish Lakhwara 2023-05-22 21:58:12 +10:00
parent 16c975db35
commit 03b1edc941
5 changed files with 34 additions and 28 deletions

View file

@ -6,5 +6,6 @@
../profiles/desktop ../profiles/desktop
../profiles/email ../profiles/email
../profiles/cal ../profiles/cal
../profiles/sync/kitaab
]; ];
} }

View file

@ -59,6 +59,7 @@
pandoc pandoc
taskwarrior-tui taskwarrior-tui
python3Packages.howdoi python3Packages.howdoi
vimwiki-cli
(pkgs.writeScriptBin "jq-repl" '' (pkgs.writeScriptBin "jq-repl" ''
#!/usr/bin/env bash #!/usr/bin/env bash

View file

@ -0,0 +1,32 @@
{ pkgs, ... }:
let
name = "kitaab-sync";
# Note this will fail if index.wiki is open in vim while this runs
mkStartScript = name: pkgs.writeShellScript "${name}.sh" ''
set -euo pipefail
PATH=/run/current-system/sw/bin:/etc/profiles/per-user/anish/bin:
cd /home/anish/kitaab
vimwiki tags rebuild
git add -A
git diff-index --quiet HEAD || git commit -m 'syncing kitaab' # if nothing, don't exit 1
git push
exit 0
'';
in
{
systemd.user.services.kitaab-sync = {
Service = {
ExecStart = "${mkStartScript name}";
};
};
systemd.user.timers.kitaab-sync = {
Install = {
WantedBy = [ "timers.target" ];
PartOf = [ "kitaab-sync.service" ];
};
Timer = {
OnCalendar = [ "hourly" ];
};
};
}

View file

@ -6,7 +6,6 @@
../profiles/core ../profiles/core
../profiles/bluetooth ../profiles/bluetooth
../profiles/music ../profiles/music
../profiles/sync/kitaab
../profiles/sync/cal ../profiles/sync/cal
../profiles/wifi ../profiles/wifi
../profiles/desktop ../profiles/desktop

View file

@ -1,27 +0,0 @@
{ pkgs, ... }:
{
systemd.services.kitaab-sync = {
serviceConfig.Type = "oneshot";
path = [
pkgs.git
pkgs.openssh
pkgs.coreutils
];
script = ''
cd /home/anish/kitaab
git add -A
git diff-index --quiet HEAD || git commit -m 'syncing kitaab' # if nothing, don't exit 1
git push
exit 0
'';
serviceConfig = {
User = "anish";
};
};
systemd.timers.kitaab-sync = {
wantedBy = [ "timers.target" ];
partOf = [ "kitaab-sync.service" ];
timerConfig.OnCalendar = [ "hourly" ];
};
}