#!/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