Modularize scripts
This commit is contained in:
parent
96b410a358
commit
225da437c5
30 changed files with 590 additions and 423 deletions
|
|
@ -1,43 +0,0 @@
|
|||
# derived from NixOS wiki
|
||||
{ config, pkgs, lib, ... }:
|
||||
let
|
||||
username = config.mods.nextcloud.username;
|
||||
password = if (config.sops.secrets ? nextcloud.path) then
|
||||
config.sops.secrets.nextcloud.path
|
||||
else
|
||||
"";
|
||||
url = config.mods.nextcloud.url;
|
||||
synclist = config.mods.nextcloud.synclist;
|
||||
in lib.mkIf config.mods.nextcloud.enable {
|
||||
systemd.user = {
|
||||
services = (builtins.listToAttrs (map (opts: {
|
||||
name = "${opts.name}";
|
||||
value = {
|
||||
Unit = {
|
||||
Description = "Auto sync Nextcloud";
|
||||
After = "network-online.target";
|
||||
};
|
||||
Service = {
|
||||
Type = "simple";
|
||||
ExecStart =
|
||||
"${pkgs.bash}/bin/bash -c '${pkgs.nextcloud-client}/bin/nextcloudcmd -h --path ${opts.remote} ${opts.local} https://${username}:$(bat ${password})@${url}'";
|
||||
TimeoutStopSec = "180";
|
||||
KillMode = "process";
|
||||
KillSignal = "SIGINT";
|
||||
};
|
||||
Install.WantedBy = [ "multi-user.target" ];
|
||||
};
|
||||
}) synclist));
|
||||
timers = (builtins.listToAttrs (map (opts: {
|
||||
name = "${opts.name}";
|
||||
value = {
|
||||
Unit.Description =
|
||||
"Automatic sync files with Nextcloud when booted up after 1 minute then rerun every 60 minutes";
|
||||
Timer.OnBootSec = "1min";
|
||||
Timer.OnUnitActiveSec = "60min";
|
||||
Install.WantedBy = [ "multi-user.target" "timers.target" ];
|
||||
};
|
||||
}) synclist));
|
||||
startServices = true;
|
||||
};
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue