From: Christian Heller <c.heller@plomlompom.de>
Date: Tue, 15 Apr 2025 21:59:54 +0000 (+0200)
Subject: Fix.
X-Git-Url: https://plomlompom.com/repos/%7B%7Bdb.prefix%7D%7D/%22https:/validator.w3.org/process?a=commitdiff_plain;h=5e1346a1a159df996adee93762e19ffc4ace8ab0;p=config

Fix.
---

diff --git a/bookworm/scripts/lib/check_finished_marker b/bookworm/scripts/lib/check_finished_marker
new file mode 100644
index 0000000..c625956
--- /dev/null
+++ b/bookworm/scripts/lib/check_finished_marker
@@ -0,0 +1,8 @@
+. lib/constants_finished
+
+check_finished_marker() {
+    _PATH_MARKER="${PATH_ROOT_FINISHEDS}/$1"
+    if [ ! -f "${_PATH_MARKER}" ]; then
+        abort "Missing dependency, did not find marker: ${_PATH_MARKER}" 
+    fi
+}
diff --git a/bookworm/scripts/lib/constants_finished b/bookworm/scripts/lib/constants_finished
new file mode 100644
index 0000000..24aafc2
--- /dev/null
+++ b/bookworm/scripts/lib/constants_finished
@@ -0,0 +1 @@
+PATH_ROOT_FINISHEDS=/root/.finished
diff --git a/bookworm/scripts/lib/put_finished_marker b/bookworm/scripts/lib/put_finished_marker
new file mode 100644
index 0000000..6c1f551
--- /dev/null
+++ b/bookworm/scripts/lib/put_finished_marker
@@ -0,0 +1,6 @@
+. lib/constants_finished
+
+put_finished_marker() {
+    mkdir -p "${PATH_ROOT_FINISHEDS}" 
+    touch "${PATH_ROOT_FINISHEDS}/$1"
+}
diff --git a/bookworm/scripts/lib/setup_users b/bookworm/scripts/lib/setup_users
index 01e2ee2..8e47a4b 100644
--- a/bookworm/scripts/lib/setup_users
+++ b/bookworm/scripts/lib/setup_users
@@ -17,7 +17,7 @@ setup_users() {
     usermod -a -G sudo "${USERNAME}"
     ensure_homefiles_of_tags ${_MIN_TAGS} ${_TAGS_USER}
     copy_dirtree "${_PATH_CONF_HOME}" "${PATH_USER_HOME}" ${_MIN_TAGS} ${_TAGS_USER}
-    _TO_CHOWN=$(mkdir -p "${_PATH_USER_BIN}" | sed 's/mkdir: created directory //g | head -1'
+    _TO_CHOWN=$(mkdir -pv "${_PATH_USER_BIN}" | sed 's/mkdir: created directory //g | head -1'
     cd "${_PATH_USER_BIN}"
     ln -s ../../.plomlib lib
     chown_to_user "${_TO_CHOWN}"
diff --git a/bookworm/scripts/setup_catgirl.sh b/bookworm/scripts/setup_catgirl.sh
index 3ecbeb8..de96083 100755
--- a/bookworm/scripts/setup_catgirl.sh
+++ b/bookworm/scripts/setup_catgirl.sh
@@ -1,54 +1,38 @@
 #!/bin/sh
 set -e
 cd $(dirname "$0")
+. lib/check_finished_marker
+. lib/chown_to_user
 . lib/constants_catgirl  # PATH_USER_SHARE_CATGIRL
-. lib/constants_repopaths # PATH_CONF
-. lib/constants_ssh  # PATH_REL_SSH, PATH_USER_SSH
-. lib/constants_user  # PATH_USER_HOME, USERNAME
-. lib/copy_dirtree
-. lib/determine_ip
-. lib/expect_n_args
-. lib/init_packages
-. lib/setup_users
-
+. lib/constants_user  # PATH_USER_HOME
 . lib/ensure_etc_of_tags
+. lib/ensure_homefiles_of_tags
 . lib/ensure_packages_of_tags
+. lib/expect_n_args
 
-PATH_DEP=/root/setup_server.finished
-if [ ! -f "${PATH_DEP}" ]; then
-    abort "No ${PATH_DEP} found – run setup_server.sh first!" 
-fi
+check_finished_marker 'setup_server'
 expect_n_args 1 1 'IRC_PASSWORD' $@
 IRC_PASSWORD="$1"
 
-ensure_packages_of_tags() {
-    # Walk through the package names in ../aptmark/ files to ensure the respective
-    # packages are installed.
-    for TAG in $@; do
-        PATH_APTMARK_TAG="../aptmark/${TAG}"
-        if [ ! -f "${PATH_APTMARK_TAG}" ]; then
-            continue
-        fi
-        cat "${PATH_APTMARK_TAG}" | while read LINE; do
-            if [ ! $(echo "${LINE}" | cut -c1) = "#" ]; then
-                apt-get -y -o Dpkg::Options::="--force-confnew" install "${LINE}"
-            fi
-        done
-    done
-}
+PATH_USER_CONF_CATGIRL="${PATH_USER_HOME}/.config/catgirl/libera"
 
+echo "\nInstalling catgirl packages, /etc and /home files."
 ensure_packages_of_tags catgirl
 ensure_etc_of_tags catgirl
-copy_dirtree "${_PATH_CONF_HOME}" "${PATH_USER_HOME}" catgirl
-chown -R "${USERNAME}:${USERNAME}" "${PATH_USER_HOME}"
+ensure_homefiles_of_tags catgirl
 
-mkdir -p "${PATH_USER_SHARE_CATGIRL}"
+echo "\nSetting up ${PATH_USER_SHARE_CATGIRL} so logs can go there."
+TO_CHOWN=$(mkdir -pv "${PATH_USER_SHARE_CATGIRL}" | sed 's/mkdir: created directory //g' | head -1)
+chown_to_user "${TO_CHOWN}"
 
-echo '\nSetting up catgirl.'
-
-sed -i "s/REPLACE_WITH_IRC_PASSWORD/${IRC_PASSWORD}/g" "${PATH_USER_HOME}/.config/catgirl/libera"
+echo "\nWriting provided password into ${PATH_USER_CONF_CATGIRL}."
+sed -i "s/REPLACE_WITH_IRC_PASSWORD/${IRC_PASSWORD}/g" "${PATH_USER_CONF_CATGIRL}"
+chown_to_user "${PATH_USER_SHARE_CATGIRL}"
 chown -R plom:plom "${PATH_USER_SHARE_CATGIRL}"
 
+echo "\nActivating catgirl tmux session service."
 systemctl enable --now catgirl
+
+echo "\nActivating catgirl logs encryption service/timer."
 systemctl enable --now encrypt_catgirl_logs.timer
 
diff --git a/bookworm/scripts/setup_server.sh b/bookworm/scripts/setup_server.sh
index 38ba4e5..33151d5 100644
--- a/bookworm/scripts/setup_server.sh
+++ b/bookworm/scripts/setup_server.sh
@@ -63,4 +63,4 @@ sed -i "s/REPLACE_WITH_FQDN/${FQDN}/g" "${PATH_CADDYFILE}"
 mkdir -p /var/www/dump/private /var/www/dump/public
 systemctl reload caddy
 
-touch /root/setup_server.finished
+put_finished_marker 'setup_server'
diff --git a/testing/scripts/lib/check_finished_marker b/testing/scripts/lib/check_finished_marker
new file mode 120000
index 0000000..d8daf8f
--- /dev/null
+++ b/testing/scripts/lib/check_finished_marker
@@ -0,0 +1 @@
+../../../bookworm/scripts/lib/check_finished_marker
\ No newline at end of file
diff --git a/testing/scripts/lib/constants_finished b/testing/scripts/lib/constants_finished
new file mode 120000
index 0000000..ec93895
--- /dev/null
+++ b/testing/scripts/lib/constants_finished
@@ -0,0 +1 @@
+../../../bookworm/scripts/lib/constants_finished
\ No newline at end of file
diff --git a/testing/scripts/lib/put_finished_marker b/testing/scripts/lib/put_finished_marker
new file mode 120000
index 0000000..54b6550
--- /dev/null
+++ b/testing/scripts/lib/put_finished_marker
@@ -0,0 +1 @@
+../../../bookworm/scripts/lib/put_finished_marker
\ No newline at end of file
diff --git a/testing/scripts/setup_desktop.sh b/testing/scripts/setup_desktop.sh
index 1f82b2a..f5f184e 100755
--- a/testing/scripts/setup_desktop.sh
+++ b/testing/scripts/setup_desktop.sh
@@ -9,6 +9,7 @@ cd $(dirname "$0")
 . lib/determine_ip
 . lib/expect_min_n_args
 . lib/init_packages
+. lib/put_finished_marker
 . lib/setup_users
 
 PATH_CONF_ETC="${PATH_CONF}/${PATH_REL_ETC}"
@@ -112,3 +113,5 @@ ntpdate-debian
 setup_users "${MIN_TAGS}" "${TAGS_USER}"
 adduser plom plugdev  # so user may use pmount
 passwd "${USERNAME}"
+
+put_finished_marker 'setup_desktop'
diff --git a/testing/scripts/setup_secrets.sh b/testing/scripts/setup_secrets.sh
index 458bb74..68e77ba 100755
--- a/testing/scripts/setup_secrets.sh
+++ b/testing/scripts/setup_secrets.sh
@@ -2,11 +2,13 @@
 set -e
 cd $(dirname "$0")
 . lib/abort_if_not_user
+. lib/check_finished_marker
 . lib/chown_to_user
 . lib/constants_repopaths  # PATH_CONF, PATH_SCRIPTS
 . lib/constants_user  # USERNAME
 . lib/path_tmp_timestamped
 
+check_finished_marker 'setup_desktop'
 abort_if_not_user root
 PATH_REL_SETUP_SECRETS_USER="$(basename ${PATH_CONF})/$(basename ${PATH_SCRIPTS})/_setup_secrets_user.sh"
 PATH_REPO="$(dirname ${PATH_CONF})"