40 lines
1.1 KiB
Nix
40 lines
1.1 KiB
Nix
{ 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 # Sometimes vimwiki is open and that causes `vimwiki tags rebuild` to fail, we still want to push to git in those cases
|
|
PATH=/run/current-system/sw/bin:/etc/profiles/per-user/anish/bin:$PATH
|
|
cd /home/anish/kitaab/vimwiki
|
|
vimwiki tags rebuild
|
|
cd ..
|
|
pushd kalpana/
|
|
${pkgs.luaPackages.fennel}/bin/fennel main.fnl build
|
|
popd
|
|
pushd vimwiki/
|
|
git add -A .
|
|
popd
|
|
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}";
|
|
Path = [ pkgs.luaPackages.fennel ];
|
|
};
|
|
};
|
|
systemd.user.timers.kitaab-sync = {
|
|
Install = {
|
|
WantedBy = [ "timers.target" ];
|
|
PartOf = [ "kitaab-sync.service" ];
|
|
};
|
|
Timer = {
|
|
OnCalendar = [ "hourly" ];
|
|
};
|
|
};
|
|
}
|