fix more bugs

This commit is contained in:
Laila van Reenen 2024-12-13 22:04:07 +01:00
parent e328bd81d5
commit 1d702fe145
Signed by: LailaTheElf
GPG Key ID: 1F4E6EE3E6DDF769
2 changed files with 73 additions and 72 deletions

View File

@ -168,7 +168,7 @@ run "create fist boot config" "cat >/mnt/first-boot.env <<EOF
USERNAME=$USERNAME USERNAME=$USERNAME
HOSTNAME=$HOSTNAME HOSTNAME=$HOSTNAME
CONFIG_DIR=/opt/elfOS_configFiles CONFIG_DIR=/opt/elfOS_configFiles
LOG_FILE=/var/logs/elfOS/first-boot.log LOG_FILE=/var/log/elfOS/first-boot.log
EOF EOF
" "
run "set access fist boot script" "chmod 700 /mnt/first-boot.env" run "set access fist boot script" "chmod 700 /mnt/first-boot.env"
@ -178,6 +178,7 @@ Description=first boot install script
[Service] [Service]
Type=simple Type=simple
StandardOutput=journal+console
ExecStart=/first-boot.sh ExecStart=/first-boot.sh
[Install] [Install]

View File

@ -5,42 +5,42 @@
function run(){ function run(){
if [ "$1" = "root" ] if [ "$1" = "root" ]
then then
box="" prefix=""
else else
box="sudo -u $USERNAME distrobox enter --name $1 --" prefix="sudo -u $1"
fi fi
echo "[ ] $1: $2" echo "[ ] $1: $2"
echo "# $2" >>"$LOG_FILE" echo "# $2" >>"$LOG_FILE"
echo "$1> $3" >>"$LOG_FILE" echo "$1> $3" >>"$LOG_FILE"
bash -c "$box $3" &>>"$LOG_FILE" \ bash -c "$prefix $3" &>>"$LOG_FILE" \
&& echo -e "\e[1A\e[K[ \e[32mOK\e[0m ] $1: $2" \ && echo -e "[ \e[32mOK\e[0m ] $1: $2" \
|| { || {
echo -e "\e[1A\e[K[\e[31mFAIL\e[0m] $1: $2" echo -e "[\e[31mFAIL\e[0m] $1: $2"
bash -c "$4" bash -c "$4"
exit exit
} }
echo >>"$LOG_FILE" echo >>"$LOG_FILE"
} }
run root "disable first boot service" "systemctl disable first_boot.service" run root "disable first boot service" "systemctl disable first_boot.service"
echo echo
echo === install tools echo === install tools
echo echo
run root "enable NetworkMaanger" "systemctl enable NetworkManager.service" run root "enable NetworkMaanger" "systemctl enable NetworkManager.service"
run root "start NetworkMaanger" "systemctl start 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 "wait for network" "while [[ 1 ]] ; do ping -c1 1.1.1.1 && break ; done"
run root "install base tools" "pacman -Sy --noconfirm \ run root "install base tools" "pacman -Sy --noconfirm \
usbutils dosfstools exfat-utils net-tools bind nmap libfido2 \ usbutils dosfstools exfat-utils net-tools bind nmap libfido2 \
base-devel vim curl ncdu neofetch btop git flatpak" base-devel vim curl ncdu neofetch btop git flatpak"
run root "install dev tools" "pacman -S --noconfirm ansible python3 gcc make cmake" # clangd run root "install dev tools" "pacman -S --noconfirm ansible python3 gcc make cmake" # clangd
run root "install gnome" "pacman -S --noconfirm gnome" run root "install gnome" "pacman -S --noconfirm gnome"
run root "enable gnome" "systemctl enable gdm.service" run root "enable gnome" "systemctl enable gdm.service"
run root "install distrobox" "pacman -S --noconfirm docker distrobox" run root "install distrobox" "pacman -S --noconfirm docker distrobox"
run root "add $USERNAME to docker group" "usermod -aG docker $USERNAME" run root "add $USERNAME to docker group" "usermod -aG docker $USERNAME"
HOME_IP="$(dig +short home.freenen.nl)" HOME_IP="$(dig +short home.freenen.nl)"
run root "update hosts file" "cat >>/etc/hosts <<EOF run root "update hosts file" "cat >>/etc/hosts <<EOF
${HOME_IP} myadmin.cool.freenen.nl ${HOME_IP} myadmin.cool.freenen.nl
${HOME_IP} grafana.cool.freenen.nl ${HOME_IP} grafana.cool.freenen.nl
@ -49,33 +49,33 @@ ${HOME_IP} nodered.cool.freenen.nl
EOF EOF
" "
run root "create home dirs" "sudo -u $USERNAME mkdir -p \ run "$USERNAME" "create home dirs" "mkdir -p \
/home/$USERNAME/.local/python-env \ /home/$USERNAME/.local/python-env \
/home/$USERNAME/.ssh \ /home/$USERNAME/.ssh \
/home/$USERNAME/projects \ /home/$USERNAME/projects \
/home/$USERNAME/.local/share/flatpak/overrides/" /home/$USERNAME/.local/share/flatpak/overrides/"
# run ubuntu "create python env" "python3 -m venv /home/$USERNAME/.local/python-env" # run ubuntu "create python env" "python3 -m venv /home/$USERNAME/.local/python-env"
run root "copy ssh config" "sudo -u $USERNAME cp $CONFIG_DIR/sshConfig /home/$USERNAME/.ssh/config" run "$USERNAME" "copy ssh config" "cp $CONFIG_DIR/sshConfig /home/$USERNAME/.ssh/config"
run root "copy git config" "sudo -u $USERNAME cp $CONFIG_DIR/gitconfig /home/$USERNAME/.gitconfig" run "$USERNAME" "copy git config" "cp $CONFIG_DIR/gitconfig /home/$USERNAME/.gitconfig"
run root "copy vim config" "sudo -u $USERNAME cp $CONFIG_DIR/vimrc /home/$USERNAME/.vimrc" run "$USERNAME" "copy vim config" "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 "$USERNAME" "copy vim config" "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 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" run root "update fail lock" "sed --in-place -e 's/^deny = .*$/deny = 10/' -e 's/^unlock_time = .*$/unlock_time = 60/' /etc/security/faillock.conf"
echo echo
echo === setup blutooth echo === setup blutooth
echo echo
run root "install bluez" "pacman -S --noconfirm bluez bluez-tools" run root "install bluez" "pacman -S --noconfirm bluez bluez-tools"
run root "enable bluez" "systemctl enable bluetooth" run root "enable bluez" "systemctl enable bluetooth"
# echo # echo
# echo === create distrobox for ubuntu # echo === create distrobox for ubuntu
# echo # echo
# run root "setup distrobox ubuntu" "distrobox create --image ubuntu:latest --name ubuntu" # run root "setup distrobox ubuntu" "distrobox create --image ubuntu:latest --name ubuntu"
# run root "install sudo for ubuntu box" "docker exec ubuntu apt install sudo" # run root "install sudo for ubuntu box" "docker exec ubuntu apt install sudo"
# run root "setup sudo for ubuntu box" "usermod -aG sudo $USERNAME" # run root "setup sudo for ubuntu box" "usermod -aG sudo $USERNAME"
# run ubuntu "apt udpate" "sudo apt update" # run ubuntu "apt udpate" "sudo apt update"
echo echo
@ -83,10 +83,10 @@ echo === install flatpaks
echo echo
function install_flatpak() { function install_flatpak() {
run root "install $1" "flatpak install -y $1" run root "install $1" "flatpak install -y $1"
} }
run root "copy flatpak overrides" "cp $CONFIG_DIR/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 org.mozilla.firefox
install_flatpak dev.qwery.AddWater install_flatpak dev.qwery.AddWater
install_flatpak md.obsidian.Obsidian install_flatpak md.obsidian.Obsidian
@ -110,37 +110,37 @@ echo
echo === install vscodium echo === install vscodium
echo echo
run root "vscodium: install libxss" "pacman -S --noconfirm libxss" run root "vscodium: install libxss" "pacman -S --noconfirm libxss"
run root "vscodium: clone from AUR" "sudo -u $USERNAME git clone https://aur.archlinux.org/vscodium-bin.git /tmp/vscodium-bin" run "$USERNAME" "vscodium: clone from AUR" "git clone https://aur.archlinux.org/vscodium-bin.git /tmp/vscodium-bin"
run root "vscodium: build backage" "cd /tmp/vscodium-bin/ && sudo -u $USERNAME makepkg" run "$USERNAME" "vscodium: build backage" "cd /tmp/vscodium-bin/ && makepkg"
run root "vscodium: install" 'cd /tmp/vscodium-bin/ && pacman -U --noconfirm $(ls /tmp/vscodium-bin/vscodium-bin-*.pkg.tar.zst)' run root "vscodium: install" 'cd /tmp/vscodium-bin/ && pacman -U --noconfirm $(ls /tmp/vscodium-bin/vscodium-bin-*.pkg.tar.zst)'
run root "vscodium: add extention: clangd" "sudo -u $USERNAME codium --install-extension llvm-vs-code-extensions.vscode-clangd" run "$USERNAME" "vscodium: add extention: clangd" "codium --install-extension llvm-vs-code-extensions.vscode-clangd"
run root "vscodium: add extention: git-graph" "sudo -u $USERNAME codium --install-extension mhutchie.git-graph" run "$USERNAME" "vscodium: add extention: git-graph" "codium --install-extension mhutchie.git-graph"
run root "vscodium: add extention: cmake" "sudo -u $USERNAME codium --install-extension twxs.cmake" run "$USERNAME" "vscodium: add extention: cmake" "codium --install-extension twxs.cmake"
# run root "install theros deps" "/home/$USERNAME/.local/python-env/bin/python3 -m pip teroshdl" # run root "install theros deps" "/home/$USERNAME/.local/python-env/bin/python3 -m pip teroshdl"
# run root "vscodium: add theros" "codium --install-extension teros-technology.teroshdl" # run root "vscodium: add theros" "codium --install-extension teros-technology.teroshdl"
echo echo
echo === install esp-idf echo === install esp-idf
echo echo
run root "install esp-idf deps" "pacman -S --noconfirm flex bison gperf ninja ccache libffi dfu-util libusb" run root "install esp-idf deps" "pacman -S --noconfirm flex bison gperf ninja ccache libffi dfu-util libusb"
run root "create folder for esp-idf" "sudo -u $USERNAME mkdir /home/$USERNAME/.local/espressif" run "$USERNAME" "create folder for esp-idf" "mkdir /home/$USERNAME/.local/espressif"
run root "clone idf-extra-components" "sudo -u $USERNAME git clone https://github.com/espressif/esp-idf.git /home/$USERNAME/.local/espressif/esp-idf" run "$USERNAME" "clone idf-extra-components" "git clone https://github.com/espressif/esp-idf.git /home/$USERNAME/.local/espressif/esp-idf"
run root "clone esp-idf" "sudo -u $USERNAME git clone https://github.com/espressif/idf-extra-components.git /home/$USERNAME/.local/espressif/idf-extra-components" run "$USERNAME" "clone esp-idf" "git clone https://github.com/espressif/idf-extra-components.git /home/$USERNAME/.local/espressif/idf-extra-components"
run root "clone esp-protocols" "sudo -u $USERNAME git clone https://github.com/espressif/esp-protocols.git /home/$USERNAME/.local/espressif/esp-protocols" run "$USERNAME" "clone esp-protocols" "git clone https://github.com/espressif/esp-protocols.git /home/$USERNAME/.local/espressif/esp-protocols"
run root "clone esp-zigbee-sdk" "sudo -u $USERNAME git clone https://github.com/espressif/esp-zigbee-sdk.git /home/$USERNAME/.local/espressif/esp-zigbee-sdk" run "$USERNAME" "clone esp-zigbee-sdk" "git clone https://github.com/espressif/esp-zigbee-sdk.git /home/$USERNAME/.local/espressif/esp-zigbee-sdk"
run root "install esp-idf" "sudo -u $USERNAME bash -c \"IDF_TOOLS_PATH=/home/$USERNAME/.local/espressif /home/$USERNAME/.local/espressif/esp-idf/install.sh all\"" run "$USERNAME" "install esp-idf" "IDF_TOOLS_PATH=/home/$USERNAME/.local/espressif /home/$USERNAME/.local/espressif/esp-idf/install.sh all"
echo echo
echo === install other software echo === install other software
echo echo
run root "install pulseview" "pacman -S --noconfirm pulseview sigrok-firmware-fx2lafw" run root "install pulseview" "pacman -S --noconfirm pulseview sigrok-firmware-fx2lafw"
run root "install texlive" "pacman -S --noconfirm texlive" run root "install texlive" "pacman -S --noconfirm texlive"
# run root "install deps of quartus" "pacman -S --noconfirm libfibo2 libpng12" # run root "install deps of quartus" "pacman -S --noconfirm libfibo2 libpng12"
run root "add ssh-agent to bashrc" "echo >>/home/$USERNAME/.bashrc <<EOF run root "add ssh-agent to bashrc" "echo >>/home/$USERNAME/.bashrc <<EOF
# start ssh-agent # start ssh-agent
if [[ ! -f \"$HOME/.ssh/agent.env\" ]] if [[ ! -f \"$HOME/.ssh/agent.env\" ]]
@ -152,7 +152,7 @@ ps -p $SSH_AGENT_PID >/dev/null || ssh-agent >\"$HOME/.ssh/agent.env\"
. \"$HOME/.ssh/agent.env\" . \"$HOME/.ssh/agent.env\"
export SSH_AGENT_PID; export SSH_AGENT_PID;
export SSH_AUTH_SOCK; export SSH_AUTH_SOCK;
" EOF"
if [[ $HOSTNAME == "elfDesktop" ]] if [[ $HOSTNAME == "elfDesktop" ]]
then then
@ -161,8 +161,8 @@ echo
echo === install Jellyfin Server echo === install Jellyfin Server
echo echo
run root "install Jellifin-server" "pacman -S --noconfirm jellifin-server" run root "install Jellifin-server" "pacman -S --noconfirm jellifin-server"
run root "add media disk to fstab" "cat >>/etc/fstab <<EOF run root "add media disk to fstab" "cat >>/etc/fstab <<EOF
# data disk # data disk
UUID=6ef4ad46-163f-435f-8522-3bacaeee39a8 /mnt/media auto subvol=/@media,nosuid,nodev,nofail,x-gvfs-show 0 0 UUID=6ef4ad46-163f-435f-8522-3bacaeee39a8 /mnt/media auto subvol=/@media,nosuid,nodev,nofail,x-gvfs-show 0 0
@ -173,15 +173,15 @@ echo
echo === install rclone echo === install rclone
echo echo
run root "install rclone" "pacman -S --noconfirm rclone" run root "install rclone" "pacman -S --noconfirm rclone"
run root "rclone: make config dir" "mkdir -p \"/home/$USERNAME/.config/rclone/\"" run "$USERNAME" "rclone: make config dir" "mkdir -p \"/home/$USERNAME/.config/rclone/\""
run root "rclone: pdrive home script" "cat >>\"/home/$USERNAME/.local/bin/bisync_home\" <<EOF run root "rclone: pdrive home script" "cat >>\"/home/$USERNAME/.local/bin/bisync_home\" <<EOF
#/bin/bash #/bin/bash
rclone bisync \"/home/$USERNAME/\" pdrive: --verbose --progress \ rclone bisync \"/home/$USERNAME/\" pdrive: --verbose --progress \
--filter-from \"/home/$USERNAME/.config/rclone/sync_home.filter\" $* --filter-from \"/home/$USERNAME/.config/rclone/sync_home.filter\" $*
EOF" EOF"
run root "rclone: pdrive backup config" "cat >>\"/home/$USERNAME/.config/rclone/bisync_home.filter\" <<EOF run root "rclone: pdrive backup config" "cat >>\"/home/$USERNAME/.config/rclone/bisync_home.filter\" <<EOF
+ /Music/** + /Music/**
+ /Documents/** + /Documents/**
+ /InstantUpload/** + /InstantUpload/**
@ -193,13 +193,13 @@ run root "rclone: pdrive backup config" "cat >>\"/home/$USERNAME/.config/rclo
- ** - **
EOF" EOF"
run root "rclone: pdrive backup script" "cat >>\"/home/$USERNAME/.local/bin/bisync_backup\" <<EOF run root "rclone: pdrive backup script" "cat >>\"/home/$USERNAME/.local/bin/bisync_backup\" <<EOF
#/bin/bash #/bin/bash
rclone bisync \"/mnt/backup/proton/\" pdrive: --verbose --progress \ rclone bisync \"/mnt/backup/proton/\" pdrive: --verbose --progress \
--filter-from \"/home/$USERNAME/.config/rclone/bisync_backup.filter\" $* --filter-from \"/home/$USERNAME/.config/rclone/bisync_backup.filter\" $*
EOF" EOF"
run root "rclone: pdrive backup config" "cat >>\"/home/$USERNAME/.config/rclone/bisync_backup.filter\" <<EOF run root "rclone: pdrive backup config" "cat >>\"/home/$USERNAME/.config/rclone/bisync_backup.filter\" <<EOF
+ ** + **
- /Music/** - /Music/**
@ -211,9 +211,9 @@ run root "rclone: pdrive backup config" "cat >>\"/home/$USERNAME/.config/rclo
- /Videos/** - /Videos/**
- /.vault/** - /.vault/**
EOF" EOF"
run root "rclone: set mode to filters" "chmod 664 /home/$USERNAME/.config/rclone/*.filter" run root "rclone: set mode to filters" "chmod 664 /home/$USERNAME/.config/rclone/*.filter"
run root "rclone: set mode to scripts" "chmod 775 /home/$USERNAME/.local/bin/bisync_*" run root "rclone: set mode to scripts" "chmod 775 /home/$USERNAME/.local/bin/bisync_*"
run root "rclone: set owner to files" "chown -R $USERNAME:$USERNAME /home/$USERNAME/.config/rclone /home/$USERNAME/.local/bin/bisync_*" run root "rclone: set owner to files" "chown -R $USERNAME:$USERNAME /home/$USERNAME/.config/rclone /home/$USERNAME/.local/bin/bisync_*"
fi # $HOSTNAME == "elfDesktop" fi # $HOSTNAME == "elfDesktop"
@ -221,6 +221,6 @@ echo
echo === clean and reboot echo === clean and reboot
echo echo
run "remove confic sources" "rm -r \"$CONFIG_DIR\"" run root "remove config sources" "rm -r \"$CONFIG_DIR\""
run "remove first boot script" "rm /first-boot.sh /first-boot.env /etc/systemd/system/first-boot.service" run root "remove first boot script" "rm /first-boot.sh /first-boot.env /etc/systemd/system/first-boot.service"
run "reboot" "shutdown -r now" run root "reboot" "shutdown -r now"