guixconfig/install-guix-on-void-root.bash
2023-12-12 13:09:22 +01:00

50 lines
1.3 KiB
Bash

#!/usr/bin/env bash
yes | xbps-install -SuA wget curl brightnessctl pam_rundir seatd polkit mdevd mesa-dri gnupg2 xz NetworkManager
curl -L https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh > guix-install.sh
which guix || bash guix-install.sh
yes | guix install shepherd
sed -i '/pam_rundir/{h;s/^.*$/-session optional pam_rundir.so/};${x;/^$/{s//-session optional pam_rundir.so/;H};x}' /etc/pam.d/system-login
# Guix Daemon
mkdir -p /etc/sv/guix-daemon/log
cat <<'EOF' > /etc/sv/guix-daemon/run
#!/bin/sh
exec 2>&1
exec ~root/.config/guix/current/bin/guix-daemon --build-users-group=guixbuild
EOF
chmod +x /etc/sv/guix-daemon/run
cat <<EOF > /etc/sv/guix-daemon/log/run
#!/bin/sh
exec vlogger -t guix-daemon -p daemon
EOF
chmod +x /etc/sv/guix-daemon/log/run
# Shepherd Daemon
mkdir -p /etc/sv/shepherd/log
cat <<EOF > /etc/sv/shepherd/run
#!/bin/sh
exec 2>&1
exec $(find /gnu -wholename '*/bin/shepherd')
EOF
chmod +x /etc/sv/shepherd/run
cat <<EOF > /etc/sv/shepherd/log/run
#!/bin/sh
exec vlogger -t shepherd -p daemon
EOF
chmod +x /etc/sv/shepherd/log/run
# Enable Daemons
for DAEMON in guix-daemon shepherd NetworkManager acpid dbus mdevd polkitd seatd mdevd
do
ln -sf /etc/sv/$DAEMON /var/service/
done
# Add user to groups
for GROUP in users wheel audio video network input plugdev usbmon _seatd polkitd
do
usermod -a -G $GROUP zilti
done