diff --git a/src/setup/autostart.rs b/src/setup/autostart.rs index af1f77a..7e53a44 100644 --- a/src/setup/autostart.rs +++ b/src/setup/autostart.rs @@ -3,7 +3,7 @@ use serde::Deserialize; #[derive(Deserialize)] #[serde(deny_unknown_fields)] pub struct Autostart { - pub kiosk: Kiosk + pub kiosk: Option } #[derive(Deserialize)] diff --git a/src/steps/install_packages.rs b/src/steps/install_packages.rs index a6206aa..6ca4c91 100644 --- a/src/steps/install_packages.rs +++ b/src/steps/install_packages.rs @@ -16,37 +16,37 @@ pub fn install_packages(img: &Image, setup: &Setup) -> anyhow::Result<()> { } pub fn install_autostart(img: &Image, setup: &Setup) -> anyhow::Result<()> { - // TODO make the kiosk optional maybe? - let kiosk = &setup.autostart.kiosk; - eprintln!("Installing kiosk ..."); - run_chroot(img, "root", [ - "apk", - "add", - "cage", - "firefox-esr", - "font-noto", - "mesa-dri-gallium", - "polkit", - "polkit-elogind" - ])?; - run_chroot(img, "root", [ - "sed", - "-E", - "-i", - "-e", - &format!("/tty1/s,agetty,agetty --autologin {},", kiosk.user), - "/etc/inittab" - ])?; - run_chroot(img, &kiosk.user, "[ -e ~/.profile ] || echo '#!/bin/busybox ash' >~/.profile")?; - run_chroot( - img, - &kiosk.user, - format!( - r#"echo 'if [ "$(tty)" == "/dev/tty1" ]; then dbus-run-session cage firefox-esr --kiosk "{}"; fi' >>~/.profile"#, - kiosk.page - ) - .as_str() - )?; + if let Some(kiosk) = &setup.autostart.kiosk { + eprintln!("Installing kiosk ..."); + run_chroot(img, "root", [ + "apk", + "add", + "cage", + "firefox", + "font-noto", + "mesa-dri-gallium", + "polkit", + "polkit-elogind" + ])?; + run_chroot(img, "root", [ + "sed", + "-E", + "-i", + "-e", + &format!("/tty1/s,agetty,agetty --autologin {},", kiosk.user), + "/etc/inittab" + ])?; + run_chroot(img, &kiosk.user, "[ -e ~/.profile ] || echo '#!/bin/busybox ash' >~/.profile")?; + run_chroot( + img, + &kiosk.user, + format!( + r#"echo 'if [ "$(tty)" == "/dev/tty1" ]; then dbus-run-session cage firefox --kiosk "{}"; fi' >>~/.profile"#, + kiosk.page + ) + .as_str() + )?; + } Ok(()) }