diff --git a/elf_os.sh b/elf_os.sh index 17fcd67..803a4e2 100755 --- a/elf_os.sh +++ b/elf_os.sh @@ -1,5 +1,7 @@ #!/bin/bash +SCRIPT_DIR="$(cd "$(dirname "$BASH_SOURCE[0]")" && pwd)" + . "$1" function run(){ @@ -152,8 +154,39 @@ run-chroot "create admin group" "groupadd admin" run-chroot "create user" "useradd --home-dir /home/${USERNAME} --create-home --skel /etc/skel ${USERNAME} --groups admin" run-chroot "set password for user" "echo \"${USERNAME}:$PASS_USER\" | chpasswd" run-chroot "add user to sudoers" "echo \"%admin ALL=(ALL:ALL) ALL\" >>/etc/sudoers" -run-chroot "touch authoized keys" "touch /home/${USERNAME}/.ssh/authorized_keys" -run-chroot "add sshkeys for new user" "curl -o /home/${USERNAME}/.ssh/authorized_keys https://github.com/FReenen.keys" +run "clone keys repo" "git clone https://gitea.finnvanreenen.nl:FReenen/keys.git /opt/keys" +run-chroot "create authoized keys" "cd /opt/keys/ssh && cat "${USER_SSH_KEYS[@]}" > /home/${USERNAME}/.ssh/authorized_keys" + +echo +echo === prepair first boot +echo + +run "copy config files" "cp -r $SCRIPT_DIR/configs /mnt/opt/elfOS_configFiles" +run "copy fist boot script" "cp $SCRIPT_DIR/first-boot.sh /mnt/first-boot.sh && chmod 700 /mnt/first-boot.sh" +run "make script executable" "cp $SCRIPT_DIR/first-boot.sh /mnt/first-boot.sh" +run "create fist boot config" "cat >/mnt/first-boot.env </mnt/etc/systemd/system/first_boot.service <>first-boot.log - echo "$1> $3" >>first-boot.log - bash -c "$box $3" &>>first-boot.log \ + echo "# $2" >>"$LOG_FILE" + echo "$1> $3" >>"$LOG_FILE" + bash -c "$box $3" &>>"$LOG_FILE" \ && echo -e "\e[1A\e[K[ \e[32mOK\e[0m ] $1: $2" \ || { echo -e "\e[1A\e[K[\e[31mFAIL\e[0m] $1: $2" bash -c "$4" exit } - echo >>first-boot.log + echo >>"$LOG_FILE" } +run root "disable first boot service" "systemctl disable first_boot.service" + echo echo === install tools echo @@ -55,10 +55,10 @@ run root "create home dirs" "sudo -u $USERNAME mkdir -p \ /home/$USERNAME/projects \ /home/$USERNAME/.local/share/flatpak/overrides/" # run ubuntu "create python env" "python3 -m venv /home/$USERNAME/.local/python-env" -run root "copy ssh config" "sudo -u $USERNAME cp $SCRIPT_DIR/configs/sshConfig /home/$USERNAME/.ssh/config" -run root "copy git config" "sudo -u $USERNAME cp $SCRIPT_DIR/configs/gitconfig /home/$USERNAME/.gitconfig" -run root "copy vim config" "sudo -u $USERNAME cp $SCRIPT_DIR/configs/vimrc /home/$USERNAME/.vimrc" -run root "copy vim config" "sudo -u $USERNAME cp $SCRIPT_DIR/configs/auto_clone.sh /home/$USERNAME/projects/auto_clone.sh" +run root "copy ssh config" "sudo -u $USERNAME cp $CONFIG_DIR/sshConfig /home/$USERNAME/.ssh/config" +run root "copy git config" "sudo -u $USERNAME cp $CONFIG_DIR/gitconfig /home/$USERNAME/.gitconfig" +run root "copy vim config" "sudo -u $USERNAME cp $CONFIG_DIR/vimrc /home/$USERNAME/.vimrc" +run root "copy vim config" "sudo -u $USERNAME cp $CONFIG_DIR/auto_clone.sh /home/$USERNAME/projects/auto_clone.sh" run root "update polkit" "sed --in-place -e 's/wheel/admin/g' /usr/share/polkit-1/rules.d/50-default.rules" run root "update fail lock" "sed --in-place -e 's/^deny = .*$/deny = 10/' -e 's/^unlock_time = .*$/unlock_time = 60/' /etc/security/faillock.conf" @@ -86,7 +86,7 @@ function install_flatpak() { run root "install $1" "flatpak install -y $1" } -run root "copy flatpak overrides" "cp $SCRIPT_DIR/configs/flatpak/* /home/$USERNAME/.local/share/flatpak/overrides/" +run root "copy flatpak overrides" "cp $CONFIG_DIR/flatpak/* /home/$USERNAME/.local/share/flatpak/overrides/" install_flatpak org.mozilla.firefox install_flatpak dev.qwery.AddWater install_flatpak md.obsidian.Obsidian @@ -140,3 +140,87 @@ echo run root "install pulseview" "pacman -S --noconfirm pulseview sigrok-firmware-fx2lafw" run root "install texlive" "pacman -S --noconfirm texlive" # run root "install deps of quartus" "pacman -S --noconfirm libfibo2 libpng12" +run root "add ssh-agent to bashrc" "echo >>/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; +" + +if [[ $HOSTNAME == "elfDesktop" ]] +then + +echo +echo === install Jellyfin Server +echo + +run root "install Jellifin-server" "pacman -S --noconfirm jellifin-server" +run root "add media disk to fstab" "cat >>/etc/fstab <>\"/home/$USERNAME/.local/bin/bisync_home\" <>\"/home/$USERNAME/.config/rclone/bisync_home.filter\" <>\"/home/$USERNAME/.local/bin/bisync_backup\" <>\"/home/$USERNAME/.config/rclone/bisync_backup.filter\" <