diff options
| -rw-r--r-- | accounts/gkleen@sif/systemd.nix | 28 |
1 files changed, 19 insertions, 9 deletions
diff --git a/accounts/gkleen@sif/systemd.nix b/accounts/gkleen@sif/systemd.nix index 99cbcbb3..48352208 100644 --- a/accounts/gkleen@sif/systemd.nix +++ b/accounts/gkleen@sif/systemd.nix | |||
| @@ -46,11 +46,11 @@ in { | |||
| 46 | ]; | 46 | ]; |
| 47 | 47 | ||
| 48 | services = { | 48 | services = { |
| 49 | sync-keepass = { | 49 | "sync-keepass@" = { |
| 50 | Service = { | 50 | Service = { |
| 51 | Type = "oneshot"; | 51 | Type = "oneshot"; |
| 52 | WorkingDirectory = "~"; | 52 | WorkingDirectory = "~"; |
| 53 | ExecStart = toString (pkgs.writers.writePython3 "sync-keepass" { | 53 | ExecStart = "${pkgs.writers.writePython3 "sync-keepass" { |
| 54 | libraries = with pkgs.python3Packages; [ python-dateutil ]; | 54 | libraries = with pkgs.python3Packages; [ python-dateutil ]; |
| 55 | } '' | 55 | } '' |
| 56 | import json | 56 | import json |
| @@ -59,13 +59,13 @@ in { | |||
| 59 | from datetime import datetime | 59 | from datetime import datetime |
| 60 | from dateutil.tz import tzlocal | 60 | from dateutil.tz import tzlocal |
| 61 | from dateutil.parser import isoparse | 61 | from dateutil.parser import isoparse |
| 62 | from sys import stderr | 62 | from sys import stderr, argv |
| 63 | 63 | ||
| 64 | 64 | ||
| 65 | remote_fs = 'surtr' | 65 | remote_fs = 'surtr' if argv[1] == 'store.kdbx' else 'mathcloud' |
| 66 | remote_file = 'store.kdbx' | 66 | remote_file = argv[1] |
| 67 | target_file = expanduser('~/store.kdbx') | 67 | target_file = expanduser(f'~/{argv[1]}') |
| 68 | meta_file = expanduser('~/.store.kdbx.json') | 68 | meta_file = expanduser(f'~/.{argv[1]}.json') |
| 69 | 69 | ||
| 70 | upload_time = None | 70 | upload_time = None |
| 71 | our_last_upload_time = None | 71 | our_last_upload_time = None |
| @@ -115,7 +115,7 @@ in { | |||
| 115 | do_upload() | 115 | do_upload() |
| 116 | elif upload_time is not None and (mod_time is None or upload_time > mod_time) and (our_last_upload_time is None or upload_time > our_last_upload_time): # noqa: E501 | 116 | elif upload_time is not None and (mod_time is None or upload_time > mod_time) and (our_last_upload_time is None or upload_time > our_last_upload_time): # noqa: E501 |
| 117 | do_download() | 117 | do_download() |
| 118 | ''); | 118 | ''} \"%I\""; |
| 119 | Environment = [ "RCLONE_PASSWORD_COMMAND=\"${pkgs.coreutils}/bin/cat ${config.sops.secrets.gkleen-rclone.path}\"" "PATH=${pkgs.rclone}/bin" ]; | 119 | Environment = [ "RCLONE_PASSWORD_COMMAND=\"${pkgs.coreutils}/bin/cat ${config.sops.secrets.gkleen-rclone.path}\"" "PATH=${pkgs.rclone}/bin" ]; |
| 120 | }; | 120 | }; |
| 121 | }; | 121 | }; |
| @@ -408,7 +408,7 @@ in { | |||
| 408 | }; | 408 | }; |
| 409 | }; | 409 | }; |
| 410 | timers = { | 410 | timers = { |
| 411 | sync-keepass = { | 411 | "sync-keepass@store.kdbx" = { |
| 412 | Timer = { | 412 | Timer = { |
| 413 | OnActiveSec = "1m"; | 413 | OnActiveSec = "1m"; |
| 414 | OnUnitActiveSec = "1m"; | 414 | OnUnitActiveSec = "1m"; |
| @@ -418,6 +418,16 @@ in { | |||
| 418 | WantedBy = ["default.target"]; | 418 | WantedBy = ["default.target"]; |
| 419 | }; | 419 | }; |
| 420 | }; | 420 | }; |
| 421 | "sync-keepass@rz.kdbx" = { | ||
| 422 | Timer = { | ||
| 423 | OnActiveSec = "3h"; | ||
| 424 | OnUnitActiveSec = "3h"; | ||
| 425 | }; | ||
| 426 | |||
| 427 | Install = { | ||
| 428 | WantedBy = ["default.target"]; | ||
| 429 | }; | ||
| 430 | }; | ||
| 421 | }; | 431 | }; |
| 422 | targets = { | 432 | targets = { |
| 423 | graphical-session = { | 433 | graphical-session = { |
