home · contact · privacy
Fix.
authorChristian Heller <c.heller@plomlompom.de>
Tue, 15 Apr 2025 21:59:54 +0000 (23:59 +0200)
committerChristian Heller <c.heller@plomlompom.de>
Tue, 15 Apr 2025 21:59:54 +0000 (23:59 +0200)
bookworm/scripts/lib/check_finished_marker [new file with mode: 0644]
bookworm/scripts/lib/constants_finished [new file with mode: 0644]
bookworm/scripts/lib/put_finished_marker [new file with mode: 0644]
bookworm/scripts/lib/setup_users
bookworm/scripts/setup_catgirl.sh
bookworm/scripts/setup_server.sh
testing/scripts/lib/check_finished_marker [new symlink]
testing/scripts/lib/constants_finished [new symlink]
testing/scripts/lib/put_finished_marker [new symlink]
testing/scripts/setup_desktop.sh
testing/scripts/setup_secrets.sh

diff --git a/bookworm/scripts/lib/check_finished_marker b/bookworm/scripts/lib/check_finished_marker
new file mode 100644 (file)
index 0000000..c625956
--- /dev/null
@@ -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 (file)
index 0000000..24aafc2
--- /dev/null
@@ -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 (file)
index 0000000..6c1f551
--- /dev/null
@@ -0,0 +1,6 @@
+. lib/constants_finished
+
+put_finished_marker() {
+    mkdir -p "${PATH_ROOT_FINISHEDS}" 
+    touch "${PATH_ROOT_FINISHEDS}/$1"
+}
index 01e2ee2875190ff7a2e1510a8a635c4da73fa08b..8e47a4b78260afa0387a7a45c4a58337ed2b049c 100644 (file)
@@ -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}"
index 3ecbeb8d512f9cdbe53764f925000de3a29263ae..de96083220f7b1908f480790d654b2f35c9c2e8e 100755 (executable)
@@ -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
 
index 38ba4e5befcf02232dc6f0cb061e3a5d197826d3..33151d57049af8bf5971119539d55e0b2b3bc4fe 100644 (file)
@@ -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 (symlink)
index 0000000..d8daf8f
--- /dev/null
@@ -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 (symlink)
index 0000000..ec93895
--- /dev/null
@@ -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 (symlink)
index 0000000..54b6550
--- /dev/null
@@ -0,0 +1 @@
+../../../bookworm/scripts/lib/put_finished_marker
\ No newline at end of file
index 1f82b2a87b7c656b69f3b414f6bf889f1830d6fa..f5f184e8b5b6dc721446a2d3045e913023c66aae 100755 (executable)
@@ -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'
index 458bb74760fc2008636e4f63de9c70747a6a74e4..68e77bae1f3d4d128ee19a1bf6f47cd9d88ca405 100755 (executable)
@@ -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})"