diff --git a/scripts/install-brew-packages.sh b/scripts/install-brew-packages.sh index 181e3c9..ee5d429 100755 --- a/scripts/install-brew-packages.sh +++ b/scripts/install-brew-packages.sh @@ -10,7 +10,7 @@ input_file_check() { } install_brew() { - if ! command -v brew > /dev/null 2>&1; then + if ! command -v brew >/dev/null 2>&1; then yes | NONINTERACTIVE=1 bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)" fi @@ -32,17 +32,17 @@ install_brew_packages() { esac # Check if the package exists in the Homebrew repository - if brew search "$brew_package" 2> /dev/null | grep -q "$brew_package"; then + if brew search "$brew_package" 2>/dev/null | grep -q "$brew_package"; then echo "Available: $brew_package" found_packages="$found_packages $brew_package" else not_found_packages="$not_found_packages $brew_package" echo "Unavailable: $brew_package" fi - done < "$BREW_PACKAGE_FILE" + done <"$BREW_PACKAGE_FILE" # Install available brew packages - if ! brew install $found_packages; then + if ! brew install "$found_packages"; then exit 1 fi } diff --git a/scripts/install-os-packages.sh b/scripts/install-os-packages.sh index 49d3f00..4baf36a 100755 --- a/scripts/install-os-packages.sh +++ b/scripts/install-os-packages.sh @@ -7,12 +7,12 @@ setup() { OS_PKG_CHECK_COMMAND="" # Detect package manager and set package manager commands - if command -v apt-get > /dev/null 2>&1; then + if command -v apt-get >/dev/null 2>&1; then OS_INSTALL_COMMAND="apt-get install -y" OS_PKG_CHECK_COMMAND="apt-cache show" apt_setup - elif command -v dnf > /dev/null 2>&1; then + elif command -v dnf >/dev/null 2>&1; then OS_INSTALL_COMMAND="dnf install -y --allowerasing --skip-broken" OS_PKG_CHECK_COMMAND="dnf list available" @@ -25,17 +25,17 @@ setup() { dnf_setup() { # Faster dnf installs - echo "fastestmirror=True" | sudo tee -a /etc/dnf/dnf.conf > /dev/null - echo "max_parallel_downloads=10" | sudo tee -a /etc/dnf/dnf.conf > /dev/null - echo "defaultYes=True" | sudo tee -a /etc/dnf/dnf.conf > /dev/null - echo "keepcache=True" | sudo tee -a /etc/dnf/dnf.conf > /dev/null + echo "fastestmirror=True" | sudo tee -a /etc/dnf/dnf.conf >/dev/null + echo "max_parallel_downloads=10" | sudo tee -a /etc/dnf/dnf.conf >/dev/null + echo "defaultYes=True" | sudo tee -a /etc/dnf/dnf.conf >/dev/null + echo "keepcache=True" | sudo tee -a /etc/dnf/dnf.conf >/dev/null # Enable RPM Fusion & Install media codecs sudo dnf install -y https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-"$(rpm -E %fedora)".noarch.rpm https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-"$(rpm -E %fedora)".noarch.rpm && sudo dnf groupupdate -y core multimedia --setop="install_weak_deps=False" --exclude=PackageKit-gstreamer-plugin sound-and-video && sudo dnf makecache # Add VS-Code repo sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc - printf "%s\n%s\n%s\n%s\n%s\n%s\n" "[code]" "name=Visual Studio Code" "baseurl=https://packages.microsoft.com/yumrepos/vscode" "enabled=1" "gpgcheck=1" "gpgkey=https://packages.microsoft/com/keys/microsoft.asc" | sudo tee /etc/yum.repos.d/vscode.repo > /dev/null + printf "%s\n%s\n%s\n%s\n%s\n%s\n" "[code]" "name=Visual Studio Code" "baseurl=https://packages.microsoft.com/yumrepos/vscode" "enabled=1" "gpgcheck=1" "gpgkey=https://packages.microsoft/com/keys/microsoft.asc" | sudo tee /etc/yum.repos.d/vscode.repo >/dev/null # Install development Tools sudo yum groupinstall -y "Development Tools" && yum install readline readline-devel -y @@ -47,14 +47,42 @@ dnf_setup() { } apt_setup() { + # We are Debian or Ubuntu + [ -f /etc/os-release ] && . /etc/os-release + sudo apt-get update && sudo apt-get upgrade -y # Add VS-Code repo sudo apt-get install -y wget gpg - wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg + wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor >packages.microsoft.gpg sudo install -D -o root -g root -m 644 packages.microsoft.gpg /etc/apt/keyrings/packages.microsoft.gpg - echo "deb [arch=amd64,arm64,armhf signed-by=/etc/apt/keyrings/packages.microsoft.gpg] https://packages.microsoft.com/repos/code stable main" | sudo tee /etc/apt/sources.list.d/vscode.list > /dev/null - rm -f packages.microsoft.gpg && sudo apt-get update + echo "deb [arch=amd64,arm64,armhf signed-by=/etc/apt/keyrings/packages.microsoft.gpg] https://packages.microsoft.com/repos/code stable main" | sudo tee /etc/apt/sources.list.d/vscode.list >/dev/null + rm -f packages.microsoft.gpg + + if [ "$ID" = "debian" ]; then + debian_setup + else + ubuntu_setup + fi + + sudo apt-get update +} + +debian_setup() { + # Add Ulauncher repo + sudo apt update && sudo apt install -y gnupg + sudo gpg --keyserver keyserver.ubuntu.com --recv 0xfaf1020699503176 && sudo gpg --export 0xfaf1020699503176 | sudo tee /usr/share/keyrings/ulauncher-archive-keyring.gpg >/dev/null + echo "deb [signed-by=/usr/share/keyrings/ulauncher-archive-keyring.gpg] \ + http://ppa.launchpad.net/agornostal/ulauncher-dev/ubuntu jammy main" | + sudo tee /etc/apt/sources.list.d/ulauncher-dev-jammy.list +} + +ubuntu_setup() { + # Add Ulauncher repo + sudo add-apt-repository universe -y && sudo add-apt-repository ppa:agornostal/ulauncher -y + + # Add dotnet ppa + sudo add-apt-repository ppa:dotnet/backports } input_file_check() { @@ -79,14 +107,14 @@ install_os_packages() { esac # Check if the package exists in the APT repository - if eval "$OS_PKG_CHECK_COMMAND" "$os_package" 2> /dev/null | grep -q "$os_package"; then + if eval "$OS_PKG_CHECK_COMMAND" "$os_package" 2>/dev/null | grep -q "$os_package"; then echo "Available: $os_package" os_found_packages="$os_found_packages $os_package" else echo "Unavailable: $os_package" os_not_found_packages="$os_not_found_packages $os_package" fi - done < "$OS_PACKAGE_FILE" + done <"$OS_PACKAGE_FILE" # Install available packages if ! eval sudo "$OS_INSTALL_COMMAND" "$os_found_packages"; then diff --git a/scripts/install.sh b/scripts/install.sh index 9fc6305..3eb48f0 100755 --- a/scripts/install.sh +++ b/scripts/install.sh @@ -1,8 +1,6 @@ #!/usr/bin/env sh # TODO: Things that did not work -# - Shortcuts: Maximize current window with [Windows + space] didn't -# - NEOVIM: Lazy did not download automatically # - dotfiles: could NOT link it to aliases_personal # NOTE: should download dotfiles repo to ~ and NOT to ~/Downloads - since we are going to link Downloads @@ -15,7 +13,7 @@ kitty_term() { cp ~/.local/kitty.app/share/applications/kitty-open.desktop ~/.local/share/applications/ sed -i "s|Icon=kitty|Icon=$(readlink -f ~)/.local/kitty.app/share/icons/hicolor/256x256/apps/kitty.png|g" ~/.local/share/applications/kitty*.desktop sed -i "s|Exec=kitty|Exec=$(readlink -f ~)/.local/kitty.app/bin/kitty|g" ~/.local/share/applications/kitty*.desktop - echo 'kitty.desktop' > ~/.config/xdg-terminals.list + echo 'kitty.desktop' >~/.config/xdg-terminals.list } rustlang() { @@ -42,8 +40,6 @@ post_install() { rm -rf ~/.cache up - zsh - nvim } pre_install() { @@ -64,7 +60,7 @@ main() { ./install-os-packages.sh ./install-brew-packages.sh - ./install-flatpak-packages.sh + # ./install-flatpak-packages.sh manual_installs post_install