fix more bugs
This commit is contained in:
parent
e328bd81d5
commit
1d702fe145
@ -168,7 +168,7 @@ run "create fist boot config" "cat >/mnt/first-boot.env <<EOF
|
||||
USERNAME=$USERNAME
|
||||
HOSTNAME=$HOSTNAME
|
||||
CONFIG_DIR=/opt/elfOS_configFiles
|
||||
LOG_FILE=/var/logs/elfOS/first-boot.log
|
||||
LOG_FILE=/var/log/elfOS/first-boot.log
|
||||
EOF
|
||||
"
|
||||
run "set access fist boot script" "chmod 700 /mnt/first-boot.env"
|
||||
@ -178,6 +178,7 @@ Description=first boot install script
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
StandardOutput=journal+console
|
||||
ExecStart=/first-boot.sh
|
||||
|
||||
[Install]
|
||||
|
||||
142
first-boot.sh
142
first-boot.sh
@ -5,42 +5,42 @@
|
||||
function run(){
|
||||
if [ "$1" = "root" ]
|
||||
then
|
||||
box=""
|
||||
prefix=""
|
||||
else
|
||||
box="sudo -u $USERNAME distrobox enter --name $1 --"
|
||||
prefix="sudo -u $1"
|
||||
fi
|
||||
echo "[ ] $1: $2"
|
||||
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" \
|
||||
bash -c "$prefix $3" &>>"$LOG_FILE" \
|
||||
&& 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"
|
||||
exit
|
||||
}
|
||||
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 === 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"
|
||||
run root "install dev tools" "pacman -S --noconfirm ansible python3 gcc make cmake" # clangd
|
||||
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"
|
||||
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"
|
||||
run root "install dev tools" "pacman -S --noconfirm ansible python3 gcc make cmake" # clangd
|
||||
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 <<EOF
|
||||
run root "update hosts file" "cat >>/etc/hosts <<EOF
|
||||
|
||||
${HOME_IP} myadmin.cool.freenen.nl
|
||||
${HOME_IP} grafana.cool.freenen.nl
|
||||
@ -49,33 +49,33 @@ ${HOME_IP} nodered.cool.freenen.nl
|
||||
EOF
|
||||
"
|
||||
|
||||
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 "$USERNAME" "create home dirs" "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" "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"
|
||||
run "$USERNAME" "copy ssh config" "cp $CONFIG_DIR/sshConfig /home/$USERNAME/.ssh/config"
|
||||
run "$USERNAME" "copy git config" "cp $CONFIG_DIR/gitconfig /home/$USERNAME/.gitconfig"
|
||||
run "$USERNAME" "copy vim config" "cp $CONFIG_DIR/vimrc /home/$USERNAME/.vimrc"
|
||||
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 fail lock" "sed --in-place -e 's/^deny = .*$/deny = 10/' -e 's/^unlock_time = .*$/unlock_time = 60/' /etc/security/faillock.conf"
|
||||
|
||||
echo
|
||||
echo === setup blutooth
|
||||
echo
|
||||
|
||||
run root "install bluez" "pacman -S --noconfirm bluez bluez-tools"
|
||||
run root "enable bluez" "systemctl enable bluetooth"
|
||||
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 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
|
||||
@ -83,10 +83,10 @@ echo === install flatpaks
|
||||
echo
|
||||
|
||||
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 dev.qwery.AddWater
|
||||
install_flatpak md.obsidian.Obsidian
|
||||
@ -110,37 +110,37 @@ 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: install libxss" "pacman -S --noconfirm libxss"
|
||||
run "$USERNAME" "vscodium: clone from AUR" "git clone https://aur.archlinux.org/vscodium-bin.git /tmp/vscodium-bin"
|
||||
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: add extention: clangd" "sudo -u $USERNAME 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 root "vscodium: add extention: cmake" "sudo -u $USERNAME codium --install-extension 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"
|
||||
run "$USERNAME" "vscodium: add extention: clangd" "codium --install-extension llvm-vs-code-extensions.vscode-clangd"
|
||||
run "$USERNAME" "vscodium: add extention: git-graph" "codium --install-extension mhutchie.git-graph"
|
||||
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 "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" "sudo -u $USERNAME 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 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 root "clone esp-protocols" "sudo -u $USERNAME 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 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 root "install esp-idf deps" "pacman -S --noconfirm flex bison gperf ninja ccache libffi dfu-util libusb"
|
||||
run "$USERNAME" "create folder for esp-idf" "mkdir /home/$USERNAME/.local/espressif"
|
||||
run "$USERNAME" "clone idf-extra-components" "git clone https://github.com/espressif/esp-idf.git /home/$USERNAME/.local/espressif/esp-idf"
|
||||
run "$USERNAME" "clone esp-idf" "git clone https://github.com/espressif/idf-extra-components.git /home/$USERNAME/.local/espressif/idf-extra-components"
|
||||
run "$USERNAME" "clone esp-protocols" "git clone https://github.com/espressif/esp-protocols.git /home/$USERNAME/.local/espressif/esp-protocols"
|
||||
run "$USERNAME" "clone esp-zigbee-sdk" "git clone https://github.com/espressif/esp-zigbee-sdk.git /home/$USERNAME/.local/espressif/esp-zigbee-sdk"
|
||||
run "$USERNAME" "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"
|
||||
run root "add ssh-agent to bashrc" "echo >>/home/$USERNAME/.bashrc <<EOF
|
||||
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 <<EOF
|
||||
|
||||
# start ssh-agent
|
||||
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\"
|
||||
export SSH_AGENT_PID;
|
||||
export SSH_AUTH_SOCK;
|
||||
"
|
||||
EOF"
|
||||
|
||||
if [[ $HOSTNAME == "elfDesktop" ]]
|
||||
then
|
||||
@ -161,8 +161,8 @@ 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 <<EOF
|
||||
run root "install Jellifin-server" "pacman -S --noconfirm jellifin-server"
|
||||
run root "add media disk to fstab" "cat >>/etc/fstab <<EOF
|
||||
|
||||
# data disk
|
||||
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
|
||||
|
||||
run root "install rclone" "pacman -S --noconfirm rclone"
|
||||
run root "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 "install rclone" "pacman -S --noconfirm 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
|
||||
#/bin/bash
|
||||
|
||||
rclone bisync \"/home/$USERNAME/\" pdrive: --verbose --progress \
|
||||
--filter-from \"/home/$USERNAME/.config/rclone/sync_home.filter\" $*
|
||||
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/**
|
||||
+ /Documents/**
|
||||
+ /InstantUpload/**
|
||||
@ -193,13 +193,13 @@ run root "rclone: pdrive backup config" "cat >>\"/home/$USERNAME/.config/rclo
|
||||
|
||||
- **
|
||||
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
|
||||
|
||||
rclone bisync \"/mnt/backup/proton/\" pdrive: --verbose --progress \
|
||||
--filter-from \"/home/$USERNAME/.config/rclone/bisync_backup.filter\" $*
|
||||
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/**
|
||||
@ -211,9 +211,9 @@ run root "rclone: pdrive backup config" "cat >>\"/home/$USERNAME/.config/rclo
|
||||
- /Videos/**
|
||||
- /.vault/**
|
||||
EOF"
|
||||
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 owner to files" "chown -R $USERNAME:$USERNAME /home/$USERNAME/.config/rclone /home/$USERNAME/.local/bin/bisync_*"
|
||||
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 owner to files" "chown -R $USERNAME:$USERNAME /home/$USERNAME/.config/rclone /home/$USERNAME/.local/bin/bisync_*"
|
||||
|
||||
fi # $HOSTNAME == "elfDesktop"
|
||||
|
||||
@ -221,6 +221,6 @@ echo
|
||||
echo === clean and reboot
|
||||
echo
|
||||
|
||||
run "remove confic sources" "rm -r \"$CONFIG_DIR\""
|
||||
run "remove first boot script" "rm /first-boot.sh /first-boot.env /etc/systemd/system/first-boot.service"
|
||||
run "reboot" "shutdown -r now"
|
||||
run root "remove config sources" "rm -r \"$CONFIG_DIR\""
|
||||
run root "remove first boot script" "rm /first-boot.sh /first-boot.env /etc/systemd/system/first-boot.service"
|
||||
run root "reboot" "shutdown -r now"
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user