# OS Package manager packages to install INSTALL_LIST_ALL=" \ feh \ lsof \ lynx \ moc \ nmap \ ranger \ ripgrep \ tmux \ qutebrowser \ wget " # These tend to be X based programs # vlc has a different install source on Mac, so include it in the Mac list as well INSTALL_LIST_LINUX=" \ fd-find \ vlc \ xbindkeys \ xclip \ zathura " INSTALL_LIST_MAC_CLI=" \ fd " # No Mac only CLI programs here yet INSTALL_LIST_MAC_GUI=" \ alacritty vlc " # TODO: Think of a sensible way to avoid duplicating PACKAGE_INSTALL .bashrc and here OS=`uname -s` PACKAGE_MANAGER="" PACKAGE_INSTALL="" PACKAGE_MANAGER_UPDATE="" set_package_manager() { if command -v apt >/dev/null 2>&1; then PACKAGE_MANAGER="apt" PACKAGE_INSTALL="sudo apt install" PACKAGE_MANAGER_UPDATE="sudo apt update" elif command -v pacman >/dev/null 2>&1; then PACKAGE_MANAGER="pacman" PACKAGE_INSTALL="sudo pacman -S" PACKAGE_MANAGER_UPDATE="sudo pacman -Syu" elif command -v brew >/dev/null 2>&1; then PACKAGE_MANAGER="brew" PACKAGE_INSTALL="brew install" PACKAGE_MANAGER_UPDATE="brew update" elif command -v yum >/dev/null 2>&1; then PACKAGE_MANAGER="yum" PACKAGE_INSTALL="sudo yum install" PACKAGE_MANAGER_UPDATE="sudo yum update" elif command -v nix-env >/dev/null 2>&1; then PACKAGE_MANAGER="nix-env" PACKAGE_INSTALL="nix-env install" PACKAGE_MANAGER_UPDATE="nix-channel --update nixpkgs" else PACKAGE_MANAGER="unknown" fi } set_package_manager $PACKAGE_MANAGER_UPDATE $PACKAGE_INSTALL $INSTALL_LIST_ALL if [ $OS = Linux ]; then $PACKAGE_INSTALL $INSTALL_LIST_LINUX elif [ $OS = Darwin ]; then brew cask install $INSTALL_LIST_MAC_GUI echo "Alacritty may need more configuration. See Github page for details" else echo "Package bootstrapping currently only supported on Linux and Mac" fi