#!/bin/bash USERNAME=freenen SCRIPT_DIR="$(cd "$(dirname "$BASH_SOURCE[0]")" && pwd)" function run(){ if [ "$1" = "root" ] then box="" else box="sudo -u $USERNAME distrobox enter --name $1 --" fi echo "[ ] $1: $2" echo "# $2" >>install.log echo "$1> $3" >>install.log bash -c "$box $3" &>>install.log \ && 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 >>install.log } echo echo === install tools echo run root "install base tools" "pacman -Sy --noconfirm \ usbutils dosfstools exfat-utils net-tools nmap \ vim curl ncdu neofetch btop git flatpak" 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 distrobox" "pacman -S --noconfirm docker distrobox" run root "add $USERNAME to docker group" "usermod -aG docker $USERNAME" run root "create home dirs" "sudo -u $USERNAME mkdir -p /home/$USERNAME/.local/python-env /home/$USERNAME/.ssh /home/$USERNAME/projects" # run ubuntu "create python env" "python3 -m venv /home/$USERNAME/.local/python-env" run root "copy ssh config" "cp $SCRIPT_DIR/configs/sshConfig /home/$USERNAME/.ssh/config" run root "copy git config" "cp $SCRIPT_DIR/configs/gitconfig /home/$USERNAME/.gitconfig" run root "copy vim config" "cp $SCRIPT_DIR/configs/vimrc /home/$USERNAME/.vimrc" echo echo === setup blutooth echo run root "install bluez" "pacman -S --noconfirm bluez bluez-tools" run root "enable bluez" "systemctl enable bluetooth" # echo # echo === create distrobox for ubuntu # echo # 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 "setup sudo for ubuntu box" "usermod -aG sudo $USERNAME" # run ubuntu "apt udpate" "sudo apt update" echo echo === install vscodium echo run root "vscodium: clone from AUR" "sudo -u $USERNAME 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 root "vscodium: install" 'cd /tmp/vscodium-bin/ && pacman -U --noconfirm $(ls /tmp/vscodium-bin/vscodium-bin-*.pkg.tar.zst)' run root "vscodium: add extentions" "codium --install-extension lvm-vs-code-extensions.vscode-clangd mhutchie.git-graph twxs.cmake" run root "vscodium: add theros" "codium --install-extension teros-technology.teroshdl" run root "install theros deps" "/home/$USERNAME/.local/python-env/bin/python3 -m pip teroshdl" echo echo === install esp-idf echo run root "install esp-idf deps" "pacman -S flex bison gperf ninja ccache libffi dfu-util libusb" run root "create folder for esp-idf" "mkdir /home/$USERNAME/.local/espressif" run root "clone idf-extra-components" "git clone https://github.com/espressif/esp-idf.git /home/$USERNAME/.local/espressif/esp-idf" run root "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" "git clone https://github.com/espressif/esp-protocols.git /home/$USERNAME/.local/espressif/esp-protocols" run root "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" "IDF_TOOLS_PATH=/home/freenen/.local/espressif /home/$USERNAME/.local/espressif/esp-idf/install.sh all" echo echo === install flatpaks echo 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/" install_flatpak md.obsidian.Obsidian install_flatpak org.mozilla.Thunderbird # install_flatpak org.mozilla.Firefox install_flatpak com.discordapp.Discord install_flatpak com.github.tchx84.Flatseal install_flatpak com.yubico.yubioath install_flatpak org.filezillaproject.Filezilla install_flatpak org.gnome.moserial install_flatpak org.raspberrypi.rpi-imager install_flatpak org.sdrangel.SDRangel install_flatpak fr.handbrake.ghb install_flatpak org.inkscape.Inkscape install_flatpak org.gnome.Rhythmbox3 install_flatpak com.prusa3d.PrusaSlicer install_flatpak org.freecadweb.FreeCAD #TODO: install nightly instad install_flatpak org.kicad.KiCad echo echo === install other software 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"