From d4bcf82cc12792b5668f42cc807ec5f0508ba0c2 Mon Sep 17 00:00:00 2001
From: drebs <drebs@riseup.net>
Date: Mon, 9 Oct 2023 17:12:49 -0300
Subject: [PATCH] Derive WordPress database name from domain

---
 profile/manifests/wordpress/instance.pp | 17 +++++++++++------
 1 file changed, 11 insertions(+), 6 deletions(-)

diff --git a/profile/manifests/wordpress/instance.pp b/profile/manifests/wordpress/instance.pp
index cc80967c..1d74d7d2 100644
--- a/profile/manifests/wordpress/instance.pp
+++ b/profile/manifests/wordpress/instance.pp
@@ -1,17 +1,22 @@
 # A WordPress instance
 define profile::wordpress::instance (
-  String $db_pass = 'password',
-  String $domain  = 'example.org',
+  String $db_pass,
+  String $domain = $name,
+  String $db_name = join(['wp_', regsubst($domain, /[^a-z0-9_]/, '_', 'G')]),
 ) {
-  profile::mysql::db { $name:
-    user => $name,
+  if $domain !~ /[a-z0-9_.]+/ {
+    fail("Invalid domain: ${domain}")
+  }
+
+  profile::mysql::db { $db_name:
+    user => $db_name,
     host => 'localhost',
     pass => $db_pass,
   }
 
-  $php_socket = "/var/run/php-fpm/${name}"
+  $php_socket = "/var/run/php-fpm/${db_name}"
 
-  php::fpm::pool { $name:
+  php::fpm::pool { $db_name:
     listen       => $php_socket,
     listen_owner => www-data,
     listen_group => www-data,
-- 
GitLab