129 lines
5.9 KiB
Bash
Executable File
129 lines
5.9 KiB
Bash
Executable File
#!/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" >>first-boot.log
|
|
echo "$1> $3" >>first-boot.log
|
|
bash -c "$box $3" &>>first-boot.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 >>first-boot.log
|
|
}
|
|
|
|
echo
|
|
echo === install tools
|
|
echo
|
|
|
|
#run root "start NetworkManager" "NetworkManager"
|
|
run root "install base tools" "pacman -Sy --noconfirm \
|
|
usbutils dosfstools exfat-utils net-tools nmap \
|
|
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 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 \
|
|
/home/$USERNAME/.local/share/flatpak/overrides/"
|
|
# 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"
|
|
run root "copy vim config" "cp $SCRIPT_DIR/configs/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/'"
|
|
|
|
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 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 org.mozilla.firefox
|
|
install_flatpak dev.qwery.AddWater
|
|
install_flatpak md.obsidian.Obsidian
|
|
install_flatpak org.mozilla.Thunderbird
|
|
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 com.gitlab.cutecom.cutecom
|
|
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 vscodium
|
|
echo
|
|
|
|
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 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" "sudo -u $USERNAME codium --install-extension lvm-vs-code-extensions.vscode-clangd mhutchie.git-graph twxs.cmake"
|
|
# 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"
|
|
|
|
echo
|
|
echo === install esp-idf
|
|
echo
|
|
|
|
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" "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/$USERNAME/.local/espressif /home/$USERNAME/.local/espressif/esp-idf/install.sh all"
|
|
|
|
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"
|