#!/bin/bash . /first-boot.env function run(){ if [ "$1" = "root" ] then prefix="" else prefix="sudo -u $1" fi echo "[ ] $1: $2" echo "# $2" >>"$LOG_FILE" echo "$1> $3" >>"$LOG_FILE" bash -c "$prefix $3" &>>"$LOG_FILE" \ && echo -e "[ \e[32mOK\e[0m ] $1: $2" \ || { echo -e "[\e[31mFAIL\e[0m] $1: $2" bash -c "$4" exit } echo >>"$LOG_FILE" } run root "disable first boot service" "systemctl disable first_boot.service" echo echo === install tools echo run root "enable NetworkMaanger" "systemctl enable NetworkManager.service" run root "start NetworkMaanger" "systemctl start NetworkManager.service" run root "wait for network" "while [[ 1 ]] ; do ping -c1 1.1.1.1 && break ; done" run root "install base tools" "pacman -Sy --noconfirm \ usbutils dosfstools exfat-utils net-tools bind nmap libfido2 \ base-devel vim curl ncdu neofetch btop git flatpak screen" run root "install dev tools" "pacman -S --noconfirm \ ansible python3 gcc make cmake nodejs npm clang \ arm-none-eabi-gcc arm-none-eabi-newlib" run root "install gnome" "pacman -S --noconfirm gnome" run root "enable gnome" "systemctl enable gdm.service" run root "install distrobox" "pacman -S --noconfirm docker distrobox" run root "add $USERNAME to docker group" "usermod -aG docker $USERNAME" HOME_IP="$(dig +short home.freenen.nl)" run root "update hosts file" "cat >>/etc/hosts <>/home/$USERNAME/.bashrc /tmp/rustup.sh" run "$USERNAME" "run install script" "bash /tmp/rustup.sh -y" run "$USERNAME" "set envierment vars" "cat >>/home/$USERNAME/.bashrc >/home/$USERNAME/.bashrc <\"\$HOME/.ssh/agent.env\" fi . \"\$HOME/.ssh/agent.env\" >/dev/null ps -p \$SSH_AGENT_PID >/dev/null || ssh-agent >\"\$HOME/.ssh/agent.env\" . \"\$HOME/.ssh/agent.env\" export SSH_AGENT_PID; export SSH_AUTH_SOCK; EOF" if [[ $HOSTNAME == "elfDesktop" ]] then run root "install amd-ucode" "pacman -S --noconfirm amd-ucode" echo echo === install Jellyfin Server echo run root "install Jellifin-server" "pacman -S --noconfirm jellifin-server jellifin-web" run root "add media disk to fstab" "cat >>/etc/fstab <