diff options
Diffstat (limited to 'configs')
4 files changed, 50 insertions, 1 deletions
diff --git a/configs/smalldeploy/airootfs/etc/systemd/system/getty@tty1.service.d/autologin.conf b/configs/smalldeploy/airootfs/etc/systemd/system/getty@tty1.service.d/autologin.conf new file mode 100644 index 0000000..b9d22eb --- /dev/null +++ b/configs/smalldeploy/airootfs/etc/systemd/system/getty@tty1.service.d/autologin.conf @@ -0,0 +1,3 @@ +[Service] +ExecStart= +ExecStart=-/sbin/agetty -o '-p -f -- \\u' --noclear --autologin root - $TERM diff --git a/configs/smalldeploy/airootfs/root/.automated_script.sh b/configs/smalldeploy/airootfs/root/.automated_script.sh new file mode 100755 index 0000000..f7f3ced --- /dev/null +++ b/configs/smalldeploy/airootfs/root/.automated_script.sh @@ -0,0 +1,44 @@ +#!/usr/bin/env bash + +script_cmdline() { + local param + for param in $(</proc/cmdline); do + case "${param}" in + script=*) + echo "${param#*=}" + return 0 + ;; + esac + done +} + +automated_script() { + local script rt + script="$(script_cmdline)" + if [[ -n "${script}" && ! -x /tmp/startup_script ]]; then + if [[ "${script}" =~ ^((http|https|ftp|tftp)://) ]]; then + # there's no synchronization for network availability before executing this script + printf '%s: waiting for network-online.target\n' "$0" + until systemctl --quiet is-active network-online.target; do + sleep 1 + done + printf '%s: downloading %s\n' "$0" "${script}" + curl "${script}" --location --retry-connrefused --retry 10 --fail -s -o /tmp/startup_script + rt=$? + else + cp "${script}" /tmp/startup_script + rt=$? + fi + if [[ ${rt} -eq 0 ]]; then + chmod +x /tmp/startup_script + printf '%s: executing automated script\n' "$0" + # note that script is executed when other services (like pacman-init) may be still in progress, please + # synchronize to "systemctl is-system-running --wait" when your script depends on other services + /tmp/startup_script + fi + fi +} + +if [[ $(tty) == "/dev/tty1" ]]; then + automated_script +fi diff --git a/configs/smalldeploy/airootfs/root/.bash_login b/configs/smalldeploy/airootfs/root/.bash_login new file mode 100755 index 0000000..28f6a36 --- /dev/null +++ b/configs/smalldeploy/airootfs/root/.bash_login @@ -0,0 +1,3 @@ +# Execution permission not always applied on the iso +chmod 755 ~/.automated_script.sh +~/.automated_script.sh diff --git a/configs/smalldeploy/packages.x86_64 b/configs/smalldeploy/packages.x86_64 index 621bf1e..08d5509 100644 --- a/configs/smalldeploy/packages.x86_64 +++ b/configs/smalldeploy/packages.x86_64 @@ -13,7 +13,6 @@ nfs-utils open-vm-tools openssh parted -pv qemu-guest-agent screen syslinux |
