#!/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 "disabling apt recommends" 
echo 'APT::Install-Recommends "false";' > /etc/apt/apt.conf.d/99synaptic
echo "updating package list"
apt update -y && apt dist-upgrade -y
echo "installing usrmerge - nala - wget"
apt install -y usrmerge nala wget
echo "applying tweaks to grub"
cat /etc/default/grub | sed 's/GRUB_DEFAULT=0/GRUB_DEFAULT=saved/g' > /tmp/grub
echo "
# Added by 'init-diversity' script
GRUB_SAVEDEFAULT=true
GRUB_DISABLE_SUBMENU=true
" >> /tmp/grub
cat /tmp/grub > /etc/default/grub
cat /etc/grub.d/10_linux | sed 's|SUPPORTED_INITS="sysvinit:/lib/sysvinit/init systemd:/lib/systemd/systemd upstart:/sbin/upstart"|SUPPORTED_INITS="sysvinit:/lib/sysvinit/init systemd:/lib/systemd/systemd upstart:/sbin/upstart s6-rc:/lib/s6-rc/init s6-66:/lib/s6-66/init openrc:/lib/openrc/openrc-init runit:/lib/runit/runit-init"|g' > /tmp/10_linux
cat /tmp/10_linux > /etc/grub.d/10_linux
update-grub
rm /tmp/grub && /tmp/10_linux
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"
nala update && nala upgrade -y
echo "installing various packages to use with other inits"
nala install -y samba smbclient nmap xrdp dhcpcd xorgxrdp xserver-xorg-input-synaptics lxqt-sudo gftp connman connman-gtk connman-ui seatd ufw yad live-boot squashfs-tools live-config live-config-systemd isolinux syslinux syslinux-common gparted rsync libisoburn1 xorriso cryptsetup
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
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
echo "removing systemd-sysv to allow for other inits"
nala purge -y systemd-sysv
echo "installing systemd-shim"
nala install -y systemd-shim libsystemd-dev sysv-rc sysvinit-core sysvinit-utils orphan-sysvinit-scripts 
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 "symlinking systemd-udevd for other inits"
sudo ln -s /bin/udevadm /sbin/udevd
echo "updating grub"
update-grub
echo "Reinstating systemd as default init"
ln -sf /lib/systemd/systemd /sbin/init
echo "enabling default runit startup scripts"
ln -sf /etc/sv/lightdm /etc/runit/runsvdir/default/lightdm
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 "Modifying antiX service manager GUI's to work with lxqt-sudo"
cat /usr/share/applications/runit-service-manager.desktop | sed 's|Exec=su-to-root -X -c|Exec=lxqt-sudo|g' > /tmp/runit-service-manager.desktop
cat /usr/share/applications/s6-rc_service-manager.desktop | sed 's|Exec=su-to-root -X -c|Exec=lxqt-sudo|g' > /tmp/s6-rc_service-manager.desktop
mv -f /tmp/runit-service-manager.desktop /usr/share/applications/runit-service-manager.desktop
mv -f /tmp/s6-rc_service-manager.desktop /usr/share/applications/s6-rc_service-manager.desktop
echo "Setting-up s6-rc default services"
rm /etc/s6-rc/sv/antix-service-manager/contents.d/connman-srv | rm /etc/s6-rc/sv/antix-service-manager/contents.d/connman-log | rm /etc/s6-rc/sv/antix-service-manager/contents.d/slimski-srv | rm /etc/s6-rc/sv/antix-service-manager/contents.d/slimski-log
touch /etc/s6-rc/sv/antix-service-manager/contents.d/NetworkManager-srv | touch /etc/s6-rc/sv/antix-service-manager/contents.d/NetworkManager-log | touch /etc/s6-rc/sv/antix-service-manager/contents.d/lightdm-srv | touch /etc/s6-rc/sv/antix-service-manager/contents.d/lightdm-log 
s6-rc-update /etc/s6-rc/compiled-release && mv /etc/s6-rc/compiled-active /etc/s6-rc/compiled-superseded-$(date +%s%N) && rm -r /etc/s6-rc/compiled && s6-rc-compile /etc/s6-rc/compiled-active /etc/s6-rc/sv && ln -sf /etc/s6-rc/compiled-active /etc/s6-rc/compiled && s6-rc-update /etc/s6-rc/compiled && rm -rf /etc/s6-rc/compiled-superseded*
echo "adding devuan repos (for refracta tools)"
echo "deb http://deb.devuan.org/merged/ daedalus main
deb-src http://deb.devuan.org/merged/ daedalus main" > /etc/apt/sources.list.d/devuan.list
apt update -y --allow-insecure-repositories
apt install -y devuan-keyring --allow-unauthenticated
nala update
nala install -y refractasnapshot-gui refractainstaller-gui
echo "disabling devuan repos"
echo "# deb http://deb.devuan.org/merged/ daedalus main
# deb-src http://deb.devuan.org/merged/ daedalus main" > /etc/apt/sources.list.d/devuan.list
nala update
echo "end of script"



