#!/bin/bash

if [ "$(id -u)" -gt 0 ]; then
	echo "You need to run as root or using sudo"
	exit 1
fi

echo "disabling backports" 
echo "# Debian Bookworm backports. Use with caution.
# deb http://deb.debian.org/debian bookworm-backports main contrib non-free non-free-firmware" > /etc/apt/sources.list.d/bookworm-backports.list
echo "adding Prowler's s6-rc/s6-66 experimental repo"
wget http://deb-s6-rc-66-init-experimental.duckdns.org:8080/--gpg-key/s6-rc-66-experimental-repo.gpg -O /etc/apt/trusted.gpg.d/s6-rc-66-experimental-repo.gpg
echo "deb http://deb-s6-rc-66-init-experimental.duckdns.org:8080/ experimental-s6 antix-s6
deb-src http://deb-s6-rc-66-init-experimental.duckdns.org:8080/ experimental-s6 antix-s6" > /etc/apt/sources.list.d/experimental-s6.list
echo "upgrading packages"
apt update -y && apt dist-upgrade -y
echo "installing nala"
apt install -y nala
echo "installing compile tools to build software from the s6-experimental repo"
nala install -y git git-man lowdown xterm build-essential autoconf automake autotools-dev dh-make debhelper devscripts fakeroot xutils lintian pbuilder sbuild sbuild-debian-developer-setup crossbuild-essential-amd64 crossbuild-essential-i386 crossbuild-essential-arm64 dh-exec dh-runit dh-sysuser dh-buildinfo libselinux1-dev po4a dpkg-repack doc-base qtbase5-dev qtbase5-dev-tools libaudit-dev libcap-dev libpam0g-dev libselinux1-dev meson pkg-config libglib2.0-dev console-data seatd libseat1 cgmanager libexpat1-dev help2man libnih-dbus-dev libnih-dev nih-dbus-tool libgettextpo-dev libdrm-dev libevdev-dev xmlto gtk-doc-tools xfce4-dev-tools
nala install -y dh-package-notes dh-sequence-installnss xsltproc meson gperf gnu-efi libcap-dev libpam0g-dev libapparmor-dev libidn2-dev libiptc-dev libaudit-dev libdbus-1-dev libcryptsetup-dev libacl1-dev liblzma-dev liblz4-dev liblz4-tool libbz2-dev libcurl4-openssl-dev libmicrohttpd-dev libgcrypt20-dev libkmod-dev libfdisk-dev libseccomp-dev libdw-dev libpolkit-gobject-1-dev libzstd-dev libtss2-dev libfido2-dev libp11-kit-dev libssl-dev libqrencode-dev python3-jinja2 python3-evdev docbook-xsl docbook-xml python3-lxml:native python3-pyparsing gawk zstd fakechroot libtest-deep-perl python3-docutils cowbuilder qemu-user-binfmt qemu-user-static binfmt-support
echo "adding sample packages to test with s6"
nala install -y samba smbclient nmap xrdp dhcpcd xorgxrdp xserver-xorg-input-synaptics
echo "adding firewall rules for samba & xrdp"
ufw allow samba; ufw allow 3389/tcp; ufw allow 3350/tcp; ufw allow ssh; ufw allow 3702/tcp
nala install -y seatd slimski connman connman-gtk connman-ui
echo "installing software from the s6-experimental repo"
nala install -y s6 s6-doc execline execline-doc libexecline-dev libexecline2.9 skalibs-dev skalibs-doc libskarnet2.14 libs6-dev s6-rc libs6rc-dev libs6rc-0.5 s6-linux-init s6-portable-utils s6-linux-utils oblibs 66 66-tools boot-66serv libs6-linux-init-1.1 libs6-linux-init-dev s6-rc-init s6-66-init lib-sysvinit-init runit-antix  getty-run bootlogd initscripts openrc librc1 librc-dev libeinfo1 libeinfo-dev lib-openrc-init getty-run bootlogd libs6-dev
nala install -y dialogbox s6-rc-services s6-66-services runit-full-core-services-antix runit-services-full-antix init-diversity-tools s6-rc-service-manager runit-service-manager
echo "enabling default runit startup scripts"
ln -sf /etc/sv/slimski /etc/runit/runsvdir/default/slimski
ln -sf /etc/sv/seatd /etc/runit/runsvdir/default/seatd
ln -sf /etc/sv/getty-tty1 /etc/runit/runsvdir/default/getty-tty1
ln -sf /etc/sv/getty-tty2 /etc/runit/runsvdir/default/getty-tty2
ln -sf /etc/sv/getty-tty3 /etc/runit/runsvdir/default/getty-tty3
ln -sf /etc/sv/connman /etc/runit/runsvdir/default/connman
ln -sf /etc/sv/udevd /etc/runit/runsvdir/default/udevd
ln -sf /etc/sv/dbus /etc/runit/runsvdir/default/dbus
echo "end of script"
