Split [debian.sh] into multiple scripts inside a [debian] directory, adjusted references in other files to reflect changes
This commit is contained in:
@@ -1,232 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
set -euo pipefail
|
|
||||||
|
|
||||||
baseDir="$(realpath "$(dirname "${0}")")"
|
|
||||||
|
|
||||||
source \
|
|
||||||
/etc/os-release
|
|
||||||
source \
|
|
||||||
"${baseDir}/system.conf"
|
|
||||||
|
|
||||||
|
|
||||||
if [[ "${1}" == '--live' ]]; then
|
|
||||||
if [[ "${ID}" == 'debian' ]] && [[ ! "$(hostname)" == "debian-live" ]]; then
|
|
||||||
cat << EOF | tee /etc/apt/sources.list.d/contrib.sources 1> /dev/null
|
|
||||||
Enabled: yes
|
|
||||||
Types: deb
|
|
||||||
URIs: http://deb.debian.org/debian/
|
|
||||||
Suites: ${VERSION_CODENAME}
|
|
||||||
Components: contrib
|
|
||||||
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
|
|
||||||
EOF
|
|
||||||
fi
|
|
||||||
|
|
||||||
apt \
|
|
||||||
--update \
|
|
||||||
install \
|
|
||||||
--yes \
|
|
||||||
mmdebstrap \
|
|
||||||
gdisk \
|
|
||||||
linux-headers-generic \
|
|
||||||
systemd-timesyncd \
|
|
||||||
whois \
|
|
||||||
zfsutils-linux
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ "${1}" == '--mmdebstrap' ]]; then
|
|
||||||
packages=(\
|
|
||||||
ca-certificates \
|
|
||||||
console-setup \
|
|
||||||
cryptsetup \
|
|
||||||
curl \
|
|
||||||
dosfstools \
|
|
||||||
dpkg-dev \
|
|
||||||
efibootmgr \
|
|
||||||
ethtool \
|
|
||||||
firmware-{ast,atheros,bnx{2,2x},brcm80211,iwlwifi,libertas,linux,realtek,zd1211} \
|
|
||||||
flatpak \
|
|
||||||
keyboard-configuration \
|
|
||||||
linux-{headers,image}-amd64 \
|
|
||||||
locales \
|
|
||||||
nano \
|
|
||||||
network-manager \
|
|
||||||
openssh-{client,server} \
|
|
||||||
popularity-contest \
|
|
||||||
printer-driver-all \
|
|
||||||
rsync \
|
|
||||||
sudo \
|
|
||||||
systemd-timesyncd \
|
|
||||||
tasksel \
|
|
||||||
zfs-initramfs \
|
|
||||||
zstd\
|
|
||||||
)
|
|
||||||
|
|
||||||
include="--include=${packages[0]}"
|
|
||||||
|
|
||||||
for ((i=1;i<${#packages[@]};i++)); do
|
|
||||||
include+=" --include=${packages[${i}]}"
|
|
||||||
done
|
|
||||||
|
|
||||||
mmdebstrap \
|
|
||||||
--skip=check/empty \
|
|
||||||
--components=main,non-free-firmware,contrib \
|
|
||||||
--mode=root \
|
|
||||||
--format=directory \
|
|
||||||
${include} \
|
|
||||||
"${VERSION_CODENAME}" \
|
|
||||||
/mnt
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ "${1}" == '--network-interfaces' ]]; then
|
|
||||||
networkInterface=($(ip -br addr show | sed 's| .*$||g' | grep -v '^lo' | grep -v 'tailscale' | grep -v '^wg'))
|
|
||||||
shopt -s extglob
|
|
||||||
|
|
||||||
for ((i = 0; i < ${#networkInterface[@]}; i++)); do
|
|
||||||
cat << EOF | tee /mnt/etc/network/interfaces.d/${networkInterface[$i]} &> /dev/null
|
|
||||||
allow-hotplug ${networkInterface[$i]}
|
|
||||||
iface ${networkInterface[$i]} inet dhcp
|
|
||||||
EOF
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ "${1}" == '--sources' ]]; then
|
|
||||||
cat << EOF | tee /mnt/etc/apt/sources.list.d/${VERSION_CODENAME}.sources &> /dev/null
|
|
||||||
# ${VERSION_CODENAME^}
|
|
||||||
Enabled: yes
|
|
||||||
Types: deb deb-src
|
|
||||||
URIs: http://deb.debian.org/debian/
|
|
||||||
Suites: ${VERSION_CODENAME}
|
|
||||||
Components: main non-free-firmware contrib
|
|
||||||
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
|
|
||||||
|
|
||||||
# ${VERSION_CODENAME^} Security
|
|
||||||
Enabled: yes
|
|
||||||
Types: deb deb-src
|
|
||||||
URIs: http://deb.debian.org/debian-security/
|
|
||||||
Suites: ${VERSION_CODENAME}-security
|
|
||||||
Components: main non-free-firmware contrib
|
|
||||||
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
|
|
||||||
|
|
||||||
# ${VERSION_CODENAME^} Updates
|
|
||||||
Enabled: yes
|
|
||||||
Types: deb deb-src
|
|
||||||
URIs: http://deb.debian.org/debian/
|
|
||||||
Suites: ${VERSION_CODENAME}-updates
|
|
||||||
Components: main non-free-firmware contrib
|
|
||||||
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
|
|
||||||
EOF
|
|
||||||
|
|
||||||
rm /mnt/etc/apt/sources.list
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ "${1}" == '--dpkg-reconfigure' ]]; then
|
|
||||||
cat << EOF
|
|
||||||
|
|
||||||
Regardless of the language(s) you choose, be sure to enable 'en_US.UTF-8'!
|
|
||||||
Press any key to continue...
|
|
||||||
EOF
|
|
||||||
|
|
||||||
read -srn 1
|
|
||||||
|
|
||||||
dpkg-reconfigure \
|
|
||||||
locales \
|
|
||||||
tzdata \
|
|
||||||
keyboard-configuration \
|
|
||||||
console-setup
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ "${1}" == '--purge-os-prober' ]]; then
|
|
||||||
apt \
|
|
||||||
purge \
|
|
||||||
--yes \
|
|
||||||
os-prober
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ "${1}" == '--network-manager' ]]; then
|
|
||||||
cp \
|
|
||||||
/etc/NetworkManager/NetworkManager.conf \
|
|
||||||
/etc/NetworkManager/NetworkManager.conf.orig
|
|
||||||
|
|
||||||
cat \
|
|
||||||
/etc/NetworkManager/NetworkManager.conf.orig | \
|
|
||||||
sed 's|managed=false|managed=true|' | \
|
|
||||||
tee /etc/NetworkManager/NetworkManager.conf &> /dev/null
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ "${1}" == '--contrib' ]]; then
|
|
||||||
cat << EOF | tee --append /etc/apt/sources.list.d/${VERSION_CODENAME}.sources &> /dev/null
|
|
||||||
|
|
||||||
# ${VERSION_CODENAME^} Backports
|
|
||||||
Enabled: yes
|
|
||||||
Types: deb deb-src
|
|
||||||
URIs: http://deb.debian.org/debian/
|
|
||||||
Suites: ${VERSION_CODENAME}-backports
|
|
||||||
Components: main non-free-firmware contrib
|
|
||||||
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
|
|
||||||
EOF
|
|
||||||
|
|
||||||
cat << EOF | tee /etc/apt/preferences.d/backports.pref &> /dev/null
|
|
||||||
Package: *
|
|
||||||
Pin: release n=${VERSION_CODENAME}*
|
|
||||||
Pin-Priority: 990
|
|
||||||
|
|
||||||
Package: linux-*
|
|
||||||
Pin: release n=${VERSION_CODENAME}-backports
|
|
||||||
Pin-Priority: -1
|
|
||||||
EOF
|
|
||||||
|
|
||||||
if [[ "${VERSION_CODENAME}" == 'bookworm' ]]; then
|
|
||||||
cat << EOF | tee --append /etc/apt/preferences.d/backports.pref &> /dev/null
|
|
||||||
|
|
||||||
Package: /wayland/
|
|
||||||
Pin: release n=${VERSION_CODENAME}-backports
|
|
||||||
Pin-Priority: -1
|
|
||||||
EOF
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ "${1}" == '--tasksel' ]]; then
|
|
||||||
if [[ ! -f /usr/bin/tasksel ]]; then
|
|
||||||
apt \
|
|
||||||
--update \
|
|
||||||
install \
|
|
||||||
--yes \
|
|
||||||
tasksel
|
|
||||||
fi
|
|
||||||
|
|
||||||
tasksel \
|
|
||||||
--new-install
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ "${1}" == '--initramfs' ]]; then
|
|
||||||
printf \
|
|
||||||
"UMASK=0077\n" | \
|
|
||||||
tee /etc/initramfs-tools/conf.d/umask.conf &> /dev/null
|
|
||||||
|
|
||||||
update-initramfs \
|
|
||||||
-c \
|
|
||||||
-k all
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ "${1}" == '--logrotate' ]]; then
|
|
||||||
for file in /etc/logrotate.d/* ; do
|
|
||||||
if grep -Eq "(^|[^#y])compress" "$file" ; then
|
|
||||||
sed -i -r "s/(^|[^#y])(compress)/\1#\2/" "$file"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ "${1}" == '--systemctl-enable' ]]; then
|
|
||||||
systemctl \
|
|
||||||
enable \
|
|
||||||
zfs.target
|
|
||||||
systemctl \
|
|
||||||
enable \
|
|
||||||
zfs-import-cache
|
|
||||||
systemctl \
|
|
||||||
enable \
|
|
||||||
zfs-mount
|
|
||||||
systemctl \
|
|
||||||
enable \
|
|
||||||
zfs-import.target
|
|
||||||
fi
|
|
||||||
Reference in New Issue
Block a user