From e7ddf0cfc6f0b928a34ff03f6483f40a3ab2f3a9 Mon Sep 17 00:00:00 2001 From: alex Date: Sat, 21 Oct 2023 18:54:50 +0200 Subject: [PATCH] Add Nextcloud setup --- scripts/p7s/nextcloud.py | 40 ++++++++++++++++++++++++++++++++++++++++ scripts/pyproject.toml | 1 + 2 files changed, 41 insertions(+) create mode 100755 scripts/p7s/nextcloud.py diff --git a/scripts/p7s/nextcloud.py b/scripts/p7s/nextcloud.py new file mode 100755 index 0000000..0077c3a --- /dev/null +++ b/scripts/p7s/nextcloud.py @@ -0,0 +1,40 @@ +import pathlib +import subprocess +import textwrap + + +def setup_nextcloud(): + home = pathlib.Path.home() + + if not (home / ".config" / "rclone" / "rclone.conf").exists(): + print("Visit https://nextcloud.pdp7.net/nextcloud/index.php/settings/user/security , create an app password") + + subprocess.run(["rclone", "config", "create", "nextcloud", "webdav", "url=https://nextcloud.pdp7.net/nextcloud/remote.php/dav/files/alex/", "vendor=nextcloud", "user=alex", "--all"], check=True) + + (home / "Nextcloud").mkdir(exist_ok=True) + + nextcloud_service_path = home / ".config" / "systemd" / "user" / "nextcloud.service" + nextcloud_service_path.parent.mkdir(parents=True, exist_ok=True) + + nextcloud_service_path.write_text(textwrap.dedent(""" + [Unit] + + [Service] + ExecStart=/usr/bin/rclone mount --vfs-cache-mode=full --dir-perms 700 --file-perms 600 nextcloud: /home/alex/Nextcloud/ + + [Install] + WantedBy=default.target + """).lstrip()) + + subprocess.run(["systemctl", "--user", "enable", "--now", "nextcloud"], check=True) + + if not (home / ".ssh").exists(): + subprocess.run(["ln", "-s", "Nextcloud/_ssh", ".ssh"], check=True) + + dotfiles_dir = home / "Nextcloud" / "dotfiles" + + for dotfile in dotfiles_dir.glob("*"): + relative_dotfile = dotfile.relative_to(dotfiles_dir) + replaced_dotfile = pathlib.Path.home() / ("." + relative_dotfile.parts[0][1:]) + if not replaced_dotfile.exists(): + subprocess.run(["ln", "-s", dotfile, replaced_dotfile], check=True) diff --git a/scripts/pyproject.toml b/scripts/pyproject.toml index b797e68..2adaf4e 100644 --- a/scripts/pyproject.toml +++ b/scripts/pyproject.toml @@ -20,3 +20,4 @@ ruscreen = 'p7s.ruscreen:main' mbsync_config = 'p7s.mail:generate_config' db-create = 'p7s.distrobox:create' db-enter = 'p7s.distrobox:enter' +nextcloud_setup = 'p7s.nextcloud:setup_nextcloud' -- 2.47.3