Add a script draft for configuring rclone

This commit is contained in:
Manuel Thalmann 2024-07-20 05:08:23 +02:00
parent 6afc759b5a
commit e932bef303
3 changed files with 61 additions and 0 deletions

View file

@ -5,6 +5,17 @@
types
;
syncType = types.submodule (
{ ... }: {
options = {
cacheDuration = mkOption {
type = types.nullOr types.str;
description = "The amount of time to keep cached files.";
default = null;
};
};
});
userType = types.submodule (
{ ... }: {
options = {
@ -33,6 +44,14 @@
};
git = (import ./git/options.nix) { inherit lib; };
rclone = {
configurations = mkOption {
type = types.attrsOf syncType;
description = "The configurations of the rclone mounts.";
default = {};
};
};
};
});
in {

View file

@ -46,6 +46,13 @@
];
defaultShell = "fish";
rclone = {
configurations = {
nextcloud = {};
proton = {};
};
};
};
};

View file

@ -7,5 +7,40 @@ begin
sudo cp "$dir/rclone.service" "$dir/rclone.target" "$dir/rclone@.service" /etc/systemd/user
end
function userConfig -V dir -a name
source "$dir/../../Scripts/config.fish"
set -l key "valhalla.users.$name.rclone.configurations"
set -l configs (getConfig "$key" --apply "builtins.attrNames")
if [ (echo "$configs" | jq "length") -gt 0 ]
if [ "$XDG_SESSION_TYPE" = "tty" ]
set -l entryPoint ~"$name"/.config/autostart/PortValhallaProfile.desktop
sudo -u "$name" mkrit -p "$(dirname "$entryPoint")"
begin
printf %s\n \
"#!/user/bin/env xdg-open" \
"[Desktop Entry]" \
"Name=PortValhalla Profile" \
"Type=Application" \
"Terminal=false" (
printf "%s " \
"Exec=env" \
"CONFIG_MODULE=$(echo "$CONFIG_MODULE" | string escape)" \
"konsole -e fish $(realpath (status filename) | string escape) userConfig"
)
end | sudo -u "$name" tee "$entryPoint" > /dev/null
sudo chmod +x "$entryPoint"
sudo -u "$name" dbus-launch --exit-with-session startplasma-wayland &> /dev/null
rm "$entryPoint"
rm ~"$name"/.config/plasma-welcomerc
else
echo "Please complete the setup of your rclone configurations!"
rclone config || true
end
end
end
runInstaller $argv
end