From 5e1346a1a159df996adee93762e19ffc4ace8ab0 Mon Sep 17 00:00:00 2001 From: Christian Heller Date: Tue, 15 Apr 2025 23:59:54 +0200 Subject: [PATCH] Fix. --- bookworm/scripts/lib/check_finished_marker | 8 ++++ bookworm/scripts/lib/constants_finished | 1 + bookworm/scripts/lib/put_finished_marker | 6 +++ bookworm/scripts/lib/setup_users | 2 +- bookworm/scripts/setup_catgirl.sh | 52 ++++++++-------------- bookworm/scripts/setup_server.sh | 2 +- testing/scripts/lib/check_finished_marker | 1 + testing/scripts/lib/constants_finished | 1 + testing/scripts/lib/put_finished_marker | 1 + testing/scripts/setup_desktop.sh | 3 ++ testing/scripts/setup_secrets.sh | 2 + 11 files changed, 43 insertions(+), 36 deletions(-) create mode 100644 bookworm/scripts/lib/check_finished_marker create mode 100644 bookworm/scripts/lib/constants_finished create mode 100644 bookworm/scripts/lib/put_finished_marker create mode 120000 testing/scripts/lib/check_finished_marker create mode 120000 testing/scripts/lib/constants_finished create mode 120000 testing/scripts/lib/put_finished_marker 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})" -- 2.30.2