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" ];
 | |
|     };
 | |
|   };
 | |
| }
 |