From 3185ecbc3aad510f9479d6f1b0b2e60346259395 Mon Sep 17 00:00:00 2001 From: clerie Date: Wed, 22 Jan 2025 21:07:21 +0100 Subject: [PATCH] Init repo --- .gitignore | 3 +++ .../uberspace-redirect-clerie/files/.htaccess | 1 + bundles/uberspace-redirect-clerie/items.py | 7 ++++++ groups.py | 7 ++++++ libs/uberspace.py | 24 +++++++++++++++++++ nodes.py | 14 +++++++++++ requirements.txt | 1 + 7 files changed, 57 insertions(+) create mode 100644 .gitignore create mode 100644 bundles/uberspace-redirect-clerie/files/.htaccess create mode 100644 bundles/uberspace-redirect-clerie/items.py create mode 100644 groups.py create mode 100644 libs/uberspace.py create mode 100644 nodes.py create mode 100644 requirements.txt diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e109f34 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +.secrets.cfg + +__pycache__ diff --git a/bundles/uberspace-redirect-clerie/files/.htaccess b/bundles/uberspace-redirect-clerie/files/.htaccess new file mode 100644 index 0000000..5681663 --- /dev/null +++ b/bundles/uberspace-redirect-clerie/files/.htaccess @@ -0,0 +1 @@ +Redirect 301 / https://clerie.de/ diff --git a/bundles/uberspace-redirect-clerie/items.py b/bundles/uberspace-redirect-clerie/items.py new file mode 100644 index 0000000..4002dc7 --- /dev/null +++ b/bundles/uberspace-redirect-clerie/items.py @@ -0,0 +1,7 @@ +uberspaceify = repo.libs.uberspace.Uberspaceify(node) + +files = uberspaceify.files({ + f'/var/www/virtual/{node.username}/html/.htaccess': { + "source": ".htaccess", + }, +}) diff --git a/groups.py b/groups.py new file mode 100644 index 0000000..9a17327 --- /dev/null +++ b/groups.py @@ -0,0 +1,7 @@ +groups = { + 'all': { + 'member_patterns': ( + r".*", + ), + }, +} diff --git a/libs/uberspace.py b/libs/uberspace.py new file mode 100644 index 0000000..6706ab0 --- /dev/null +++ b/libs/uberspace.py @@ -0,0 +1,24 @@ +class Uberspaceify: + def __init__(self, node=None): + self.node = node + + def nodes(self, nodes): + for node_name in nodes.keys(): + if not node_name.endswith(".uber.space"): + continue + + uberspace_name = node_name.removesuffix(".uber.space") + + nodes[node_name]["hostname"] = node_name + nodes[node_name]["username"] = uberspace_name + nodes[node_name]["cmd_wrapper_outer"] = "sh -c {}" + nodes[node_name]["lock_dir"] = f"/home/{uberspace_name}/.local/state/bundlewrap" + + return nodes + + def files(self, files): + for file_name in files.keys(): + files[file_name]["owner"] = self.node.username + files[file_name]["group"] = self.node.username + + return files diff --git a/nodes.py b/nodes.py new file mode 100644 index 0000000..bd2eab5 --- /dev/null +++ b/nodes.py @@ -0,0 +1,14 @@ +uberspaceify = libs.uberspace.Uberspaceify() + +nodes = uberspaceify.nodes({ + "clerie.uber.space": { + "bundles": ( + "uberspace-redirect-clerie", + ), + }, + "cleriewi.uber.space": { + "bundles": ( + "uberspace-redirect-clerie", + ), + }, +}) diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..02ba919 --- /dev/null +++ b/requirements.txt @@ -0,0 +1 @@ +bundlewrap>=4.21.0