#!/usr/bin/env bash # Logging function log() { printf "$(tput setaf 4)$(tput bold)>>>>> %s <<<<<$(tput sgr0)\n" "$1" } inf() { printf "$(tput setaf 2)╚═══ᐳ $(tput sgr 0 1)$(tput setaf 2)%s$(tput sgr0)\n" "$1" } # Packages to install packages=( curl direnv pass libyaml ranger tmux trash-cli ueberzug unzip wget zip zoxide ) {{- writeToStdout $installSystemRustup -}} {{ if (eq .chezmoi.osRelease.id "manjaro" "arch") -}} log "Begin Arch/Manjaro Linux packages installation" ## Update system inf "updating system..." {{- if ne .chezmoi.username "root" }} sudo pacman -Syu --noconfirm --quiet {{- else }} pacman -Syu --noconfirm --quiet {{- end}} ## Install yay if [ ! $(command -v yay) ]; then inf "installing yay..." {{- if ne .chezmoi.username "root" }} sudo pacman -S --needed --noconfirm --quiet git base-devel {{- else}} pacman -S --needed --noconfirm --quiet git base-devel {{- end }} git clone https://aur.archlinux.org/yay.git /tmp/yay cd /tmp/yay makepkg -si --noconfirm rm -rf /tmp/yay fi ## Install packages for package in ${packages[@]}; do if [ "$(yay -Qq $package 2> /dev/null)" != $package ]; then inf "installing ${package}..." yay -S --noconfirm --quiet $package fi done log "Finish Arch/Manjaro Linux packages installation" {{ else if (eq .chezmoi.osRelease.id "debian" "ubuntu") -}} log "Begin Debian/Ubuntu Linux packages installation" export DEBIAN_FRONTEND=noninteractive ## Add repositories and update system inf "updating system..." {{- if ne .chezmoi.username "root" }} sudo -E apt-get install --yes --no-install-recommends --ignore-missing -qq lsb-release gpg curl -fsSL 'https://proget.makedeb.org/debian-feeds/makedeb.pub' | gpg --dearmor | sudo tee /usr/share/keyrings/makedeb-archive-keyring.gpg 1> /dev/null echo 'deb [signed-by=/usr/share/keyrings/makedeb-archive-keyring.gpg arch=all] https://proget.makedeb.org/ makedeb main' | sudo tee /etc/apt/sources.list.d/makedeb.list curl -fsSL 'https://proget.makedeb.org/debian-feeds/prebuilt-mpr.pub' | gpg --dearmor | sudo tee /usr/share/keyrings/prebuilt-mpr-archive-keyring.gpg 1> /dev/null echo "deb [arch=all,$(dpkg --print-architecture) signed-by=/usr/share/keyrings/prebuilt-mpr-archive-keyring.gpg] https://proget.makedeb.org prebuilt-mpr $(lsb_release -cs)" | sudo tee /etc/apt/sources.list.d/prebuilt-mpr.list sudo -E apt update -qq sudo -E apt upgrade --yes -qq sudo -E apt-get install --yes --no-install-recommends --ignore-missing --fix-broken -qq mist {{- else }} apt-get install --yes --no-install-recommends --ignore-missing -qq lsb-release gpg curl -fsSL 'https://proget.makedeb.org/debian-feeds/makedeb.pub' | gpg --dearmor | tee /usr/share/keyrings/makedeb-archive-keyring.gpg 1> /dev/null echo 'deb [signed-by=/usr/share/keyrings/makedeb-archive-keyring.gpg arch=all] https://proget.makedeb.org/ makedeb main' | tee /etc/apt/sources.list.d/makedeb.list curl -fsSL 'https://proget.makedeb.org/debian-feeds/prebuilt-mpr.pub' | gpg --dearmor | tee /usr/share/keyrings/prebuilt-mpr-archive-keyring.gpg 1> /dev/null echo "deb [arch=all,$(dpkg --print-architecture) signed-by=/usr/share/keyrings/prebuilt-mpr-archive-keyring.gpg] https://proget.makedeb.org prebuilt-mpr $(lsb_release -cs)" | tee /etc/apt/sources.list.d/prebuilt-mpr.list apt update -qq apt upgrade --yes -qq apt-get install --yes --no-install-recommends --ignore-missing --fix-broken -qq mist {{- end}} mist update ## Install packages packages=(${packages[@]/starship/makedeb}) packages=(${packages[@]/libyaml/libyaml-dev}) packages+=( apt-utils autoconf automake cmake doxygen libffi-dev libtool libtool-bin ninja-build pkg-config zlib1g-dev ) for package in ${packages[@]}; do inf "installing ${package}..." {{- if ne .chezmoi.username "root" }} sudo -E apt-get install --yes --no-install-recommends --ignore-missing --fix-broken -qq $package {{- else }} apt-get install --yes --no-install-recommends --ignore-missing --fix-broken -qq $package {{- end }} done log "Finish Debian/Ubuntu Linux packages installation" {{- end }}