46 lines
1.5 KiB
Bash
46 lines
1.5 KiB
Bash
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
chroot_bash() {
|
|
HOME=/home/$OMARCHY_USER \
|
|
arch-chroot -u $OMARCHY_USER /mnt/ \
|
|
env OMARCHY_CHROOT_INSTALL=1 \
|
|
OMARCHY_USER_NAME="$(<user_full_name.txt)" \
|
|
OMARCHY_USER_EMAIL="$(<user_email_address.txt)" \
|
|
USER="$OMARCHY_USER" \
|
|
HOME="/home/$OMARCHY_USER" \
|
|
OMARCHY_REPO="$(<omarchy_installer_repo.txt)" \
|
|
OMARCHY_REF="$(<omarchy_installer_ref.txt)" \
|
|
/bin/bash "$@"
|
|
}
|
|
|
|
if [[ $(tty) == "/dev/tty1" ]]; then
|
|
# Configurator for user information, disk selection, and wifi configuration
|
|
./configurator
|
|
|
|
# Get username from installer config for reliable error recovery
|
|
OMARCHY_USER="$(jq -r '.users[0].username' user_credentials.json)"
|
|
|
|
# Ensure that no mounts exist from past install attempts
|
|
findmnt -R /mnt >/dev/null && umount -R /mnt
|
|
|
|
# Install using files generated by the ./configurator
|
|
archinstall \
|
|
--config user_configuration.json \
|
|
--creds user_credentials.json \
|
|
--silent
|
|
|
|
# No need to ask for sudo during the installation (omarchy itself responsible for removing after install)
|
|
mkdir -p /mnt/etc/sudoers.d
|
|
cat >/mnt/etc/sudoers.d/99-omarchy-installer <<EOF
|
|
root ALL=(ALL:ALL) NOPASSWD: ALL
|
|
%wheel ALL=(ALL:ALL) NOPASSWD: ALL
|
|
$OMARCHY_USER ALL=(ALL:ALL) NOPASSWD: ALL
|
|
EOF
|
|
chmod 440 /mnt/etc/sudoers.d/99-omarchy-installer
|
|
|
|
# Run Omarchy web installer
|
|
OMARCHY_INSTALL_URL=$(cat omarchy_installer_url.txt 2>/dev/null || echo "https://omarchy.org/install")
|
|
chroot_bash -lc "curl -fsSL $OMARCHY_INSTALL_URL | bash || bash"
|
|
fi
|