From 0b9a6ed65f1cc8591de58ea82553e68ee3ac3859 Mon Sep 17 00:00:00 2001 From: Manuel Thalmann Date: Sat, 20 Jul 2024 13:47:07 +0200 Subject: [PATCH] Create `rclone` syncs during setup --- lib/modules/users.nix | 5 +++++ profiles/Generic/config.nix | 9 +++++++-- scripts/Common/Software/rclone/main.fish | 16 +++++++++++++++- 3 files changed, 27 insertions(+), 3 deletions(-) diff --git a/lib/modules/users.nix b/lib/modules/users.nix index 5a8db3710..d9f56fc25 100644 --- a/lib/modules/users.nix +++ b/lib/modules/users.nix @@ -8,6 +8,11 @@ syncType = types.submodule ( { ... }: { options = { + dirName = mkOption { + type = types.str; + description = "The name of the directory to sync the remote files to."; + }; + cacheDuration = mkOption { type = types.nullOr types.str; description = "The amount of time to keep cached files."; diff --git a/profiles/Generic/config.nix b/profiles/Generic/config.nix index b94314626..a53beb00c 100644 --- a/profiles/Generic/config.nix +++ b/profiles/Generic/config.nix @@ -49,8 +49,13 @@ rclone = { configurations = { - nextcloud = {}; - proton = {}; + nextcloud = { + dirName = "Nextcloud"; + }; + + proton = { + dirName = "Proton"; + }; }; }; }; diff --git a/scripts/Common/Software/rclone/main.fish b/scripts/Common/Software/rclone/main.fish index 9ffb7ef6e..384d33084 100644 --- a/scripts/Common/Software/rclone/main.fish +++ b/scripts/Common/Software/rclone/main.fish @@ -37,7 +37,21 @@ begin rm ~"$name"/.config/plasma-welcomerc else echo "Please complete the setup of your rclone configurations!" - rclone config || true + + for config in (echo "$configs" | jq '.[]' --raw-output0 | string split0) + set -l configKey "$key.$config" + set -l duration "$configKey.cacheDuration" + + set -l serviceName "rclone@$config:$(getConfig "$configKey.dirName")" + + if isSet "$duration" + set serviceName "$serviceName:$(getConfig "$duration")" + end + + echo "Please create a remote called `$config`." + rclone config || true + systemctl --user enable "$serviceName" --now || true + end end end end