# ==============================
# Radxa First Boot Configuration
# ==============================

# Allow config to continue even when some commands fail
no_fail
log "Running before.txt as first boot configuration"

# Create default accounts
# Commands:
#   add_user <user name> <password>
#   user_append_group <user name> <group>
#
add_user radxa radxa
user_append_group radxa sudo
user_append_group radxa audio
user_append_group radxa video
user_append_group radxa plugdev
user_append_group radxa render
user_append_group radxa gpio
user_append_group radxa i2c
user_append_group radxa spidev
user_append_group radxa pwm

add_user rock rock
user_append_group rock sudo
user_append_group rock audio
user_append_group rock video
user_append_group rock plugdev
user_append_group rock render
user_append_group rock gpio
user_append_group rock i2c
user_append_group rock spidev
user_append_group rock pwm

# Resize root partition at the filesystem level
#
resize_root

# Disable services
# Command:
#   disable_service <systemd unit name>
#
disable_service ssh
disable_service ssh.socket
disable_service smbd
disable_service nmbd
# Disable systemd-networkd due to systemd-networkd-wait-online blocking network.target
# We use NetworkManger, so systemd-networkd can be safely disabled
disable_service systemd-networkd

# Generate unique hardware fingerprint
#
regenerate_ssh_hostkey

# Configure locale
# Command:
#   update_locale <locale>
#
update_locale en_US.UTF-8

# Connect to Wi-Fi
# Command:
#   connect_wi-fi <network name> [password]
#
#connect_wi-fi private_network password

# Enable SSH on headless first boot
# Keyword:
#   if|if_not <condition> <command>
# Condition:
#   headless: When no display connector is connected
# Command:
#   enable_service <systemd unit name>
#
if headless enable_service ssh

# Remove first-boot package
# Command:
#   remove_packages <package names>
#
remove_packages rsetup-config-first-boot
