home · contact · privacy
Fix. master
authorChristian Heller <c.heller@plomlompom.de>
Thu, 24 Apr 2025 04:57:51 +0000 (06:57 +0200)
committerChristian Heller <c.heller@plomlompom.de>
Thu, 24 Apr 2025 04:57:51 +0000 (06:57 +0200)
bookworm/copy/catgirl/home/plom/.config/catgirl/libera
bookworm/scripts/lib/core_setup [new file with mode: 0644]
bookworm/scripts/setup_server.sh
testing/scripts/lib/core_setup [new symlink]
testing/scripts/setup_desktop.sh

index 45a1c6ae881acd2814fbc0f21beacbd4ddce53b9..3b97c2f845b2032f3e52e619255c1af9c01dd44a 100644 (file)
@@ -1,5 +1,5 @@
 host = irc.libera.chat
-join = #plomtest
+join = #plomtest,##plomtest,#mnt-reform
 sasl-plain = plomtest:REPLACE_WITH_IRC_PASSWORD
 nick = plomtest
 log
diff --git a/bookworm/scripts/lib/core_setup b/bookworm/scripts/lib/core_setup
new file mode 100644 (file)
index 0000000..4a8cdf7
--- /dev/null
@@ -0,0 +1,59 @@
+. lib/constants_etc  # PATH_ETC
+. lib/constants_user  # USERNAME
+. lib/copy_dirtrees_of_tags
+. lib/ensure_packages_of_tags
+
+core_setup() {
+    _HOSTNAME="$1"
+    _FQDN="$2"
+    _EXTERNAL_IP="$3"
+    _INSTALL_TAGS="$4"
+
+    echo "Installing and/or keeping only what's required by us or Debian."
+
+    # mark non-requireds auto
+    _PATH_LIST_PREFIX=/tmp/list_
+    _PATH_LIST_UNSORTED="${_PATH_LIST_PREFIX}unsorted"
+    _PATH_LIST_ALL_PACKAGES="${_PATH_LIST_PREFIX}all_packages"
+    _PATH_LIST_WHITE="${_PATH_LIST_PREFIX}white"
+    _PATH_LIST_BLACK="${_PATH_LIST_PREFIX}black"
+    _TOK_REQ=' required'
+    dpkg-query -Wf '${Package} ${Priority}\n' | grep "${_TOK_REQ}" | cut -d' ' -f1 > "${_PATH_LIST_UNSORTED}"
+    sort "${_PATH_LIST_UNSORTED}" > "${_PATH_LIST_WHITE}"
+    dpkg-query -Wf '${Package}\n' > "${_PATH_LIST_UNSORTED}"
+    sort "${_PATH_LIST_UNSORTED}" > "${_PATH_LIST_ALL_PACKAGES}"
+    comm -3 "${_PATH_LIST_ALL_PACKAGES}" "${_PATH_LIST_WHITE}" > "${_PATH_LIST_BLACK}"
+    apt-mark auto `cat "${_PATH_LIST_BLACK}"` > /dev/null
+    rm "${_PATH_LIST_UNSORTED}" "${_PATH_LIST_ALL_PACKAGES}" "${_PATH_LIST_WHITE}" "${_PATH_LIST_BLACK}"
+
+    # before purging, ensure tagged packages installed
+    ensure_packages_of_tags ${_INSTALL_TAGS} 
+    echo "Autoremove and purge …"
+    apt-get -y autopurge > /dev/null
+    echo "And now: dist-upgrade …"
+    apt-get -y dist-upgrade > /dev/null
+
+    echo "Setting up user: ${USERNAME}"
+    adduser --quiet --disabled-password --gecos "" "${USERNAME}"
+    usermod -a -G sudo "${USERNAME}"
+
+    echo '\nCopying over files, directories.'
+    copy_dirtrees_of_tags ${_INSTALL_TAGS}
+    
+    echo 'Setting hostname …' 
+    echo "${_HOSTNAME}" > "${PATH_ETC}/hostname"
+    hostname "${_HOSTNAME}"
+
+    echo "Adapting ${_PATH_HOSTS} …"
+    _PATH_HOSTS="${PATH_ETC}/hosts"
+    if [ -z "${_FQDN}" ]; then
+        sed -i 's/REPLACE_WITH_FQDN/REPLACE_WITH_HOSTNAME.local REPLACE_WITH_HOSTNAME.localdomain/g' "${_PATH_HOSTS}"
+    else
+        sed -i 's/REPLACE_WITH_FQDN/'"${_FQDN}"'/g' "${_PATH_HOSTS}"
+        sed -i "s/#REPLACE_WITH_EXTERNAL_IP/${_EXTERNAL_IP}/g" "${_PATH_HOSTS}"
+    fi
+    sed -i 's/REPLACE_WITH_HOSTNAME/'"${_HOSTNAME}"'/g' "${_PATH_HOSTS}"
+    
+    echo 'Syncing clock.'
+    ntpdate-debian -s
+}
index a27dd87a7ff8597b4a74fab2e79f54f290d5c1eb..68158f46f4ec389f858b6bc2159b6cb8109cb7f4 100755 (executable)
@@ -4,12 +4,10 @@ cd $(dirname "$0")
 . lib/constants_etc  # PATH_ETC
 . lib/constants_ssh  # PATH_REL_SSH, PATH_USER_SSH
 . lib/copy_dirtrees_of_tags
+. lib/core_setup
 . lib/expect_n_args
-. lib/init_packages
 . lib/path_tmp_timestamped
 . lib/put_finished_marker
-. lib/setup_user
-. lib/set_hostname_and_hosts
 
 INSTALL_TAGS='all server user'
 
@@ -51,16 +49,7 @@ PATH_APT_CADDY_REPO='/etc/apt/sources.list.d/caddy-stable.list'
 echo "Adding caddy repo to ${PATH_APT_CADDY_REPO} …"
 curl -1LfsS "${PATH_CADDY_REPO}/debian.deb.txt" > "${PATH_APT_CADDY_REPO}"
 
-init_packages "${INSTALL_TAGS}"
-setup_user
-
-echo 'Copying over files, directories …'
-copy_dirtrees_of_tags ${INSTALL_TAGS}
-
-set_hostname_and_hosts "${HOSTNAME}" "${EXTERNAL_IP}" "${FQDN}"
-
-echo 'Syncing clock …'
-ntpdate-debian -s
+core_setup "${HOSTNAME}" "${FQDN}" "${EXTERNAL_IP}" "${INSTALL_TAGS}"
 
 echo 'Moving SSH data from root to user …'
 mkdir -p "${PATH_USER_SSH}"
diff --git a/testing/scripts/lib/core_setup b/testing/scripts/lib/core_setup
new file mode 120000 (symlink)
index 0000000..57b9805
--- /dev/null
@@ -0,0 +1 @@
+../../../trixie/scripts/lib/core_setup
\ No newline at end of file
index b43be603d4ff3be7e4cd2533f4320faf4b0fcb4d..f58924cc28038743bd91c9781f729fc88353c1d9 100755 (executable)
@@ -6,11 +6,9 @@ cd $(dirname "$0")
 . lib/constants_etc  # PATH_ETC
 . lib/constants_user  # USERNAME
 . lib/copy_dirtrees_of_tags
+. lib/core_setup
 . lib/expect_n_args
-. lib/init_packages
 . lib/put_finished_marker
-. lib/setup_user
-. lib/set_hostname_and_hosts
 
 PATH_NETWORK_INTERFACES="${PATH_ETC}/network/interfaces"
 THINKPAD_NAMES="x220 w530 t490s"
@@ -70,16 +68,7 @@ else
     echo "\nAlready know wifi connection, nothing to add."
 fi
 
-init_packages "${INSTALL_TAGS}"
-setup_user
-
-echo '\nCopying over files, directories.'
-copy_dirtrees_of_tags ${INSTALL_TAGS}
-
-set_hostname_and_hosts "${SYSTEM_NAME}"
-
-echo '\nSyncing clock.'
-ntpdate-debian -s
+core_setup "${SYSTEM_NAME}" "" "" "${INSTALL_TAGS}"
 
 echo "\nEnsuring our desired locale is available."
 locale-gen