diff --git a/server.sh b/server.sh new file mode 100644 index 00000000..ab532bf0 --- /dev/null +++ b/server.sh @@ -0,0 +1,85 @@ +#! /bin/bash + +if ! command -v dialog; then + sudo apt-get install dialog -y +fi + +# Set dialog colors +cp -f dotfiles/.dialogrc $HOME/.dialogrc + +BACKTITLE="Trude's Linux Server Toolkit" +dialog --erase-on-exit \ + --backtitle "$BACKTITLE" \ + --checklist "Use the arrow keys and SPACE to select, then press ENTER." 30 90 5 \ + "1" "Update OS" "on"\ + "2" "Copy Dotfiles" "on"\ + "3" "Install CasaOS UI" "off" 2> choice.tmp +main_menu=$( cat choice.tmp ) +rm choice.tmp + +for selection in $main_menu; do + if [ "$selection" = "1" ]; then + # --- UPDATE OS --- + + dialogUpdate() { + dialog --backtitle "$BACKTITLE" --title "Update Debian and Packages" \ + --mixedgauge "Updating..." \ + 0 0 $1 \ + "Update repos" "$2" \ + "Update distro" "$3" \ + "Update packages" "$4" \ + "Clean up " "$5" + } + + dialogUpdate 0 7 4 4 4 + + sudo apt-get update &> /dev/null + dialogUpdate 15 5 7 4 4 + + sudo apt-get dist-upgrade -y &> /dev/null + dialogUpdate 35 5 5 7 4DWM + + sudo apt-get upgrade -y &> /dev/null + dialogUpdate 80 5 5 5 7 + + sudo apt-get clean &> /dev/null + sudo apt-get autoremove -y &> /dev/null + dialogUpdate 100 5 5 5 5 + fi + + if [ "$selection" = "2" ]; then + # Neovim + dialog --erase-on-exit \ + --backtitle "$BACKTITLE" \ + --title "Install/Update Neovim?" \ + --yesno "Nvim will be compiled from source. This may take a long time, depending on your device." 10 40 + + if [ "$?" -eq 0 ]; then + # NVIM has to be compiled from source to support arm64 and i386 devices, for example. + sudo apt install -y ninja-build gettext cmake unzip curl build-essential + git clone https://github.com/neovim/neovim --depth 1 + cd neovim + git checkout stable + make CMAKE_BUILD_TYPE=RelWithDebInfo + sudo make install + cd .. + rm -rf neovim + fi + + echo "Installing utilities..." + sudo apt install -y htop fzf git wget curl bash-completion tmux + + echo "Copying dotfiles..." + cp -vrf dotfiles/.* $HOME + cp -vrf dotfiles/* $HOME + + echo "Loading fonts..." + fc-cache -f + fi + + if [ "$selection" = "3" ]; then + # --- Install CasaOS --- + sudo apt install -y curl + curl -fsSL https://get.casaos.io | sudo bash + fi +done