#!/bin/bash #### Variables APT_UPDATE="apt -y update" APT_INST="apt -y install" APT_PURGE="apt -y purge" APT_REMOVE="apt -y autoremove" PKG_NAME="dbeaver-ce" PKG_DEPS=(default-jdk) #### Functions check_root() { if [ "$EUID" -ne 0 ]; then echo "Must be root to run $0" exit fi } choice() { echo -ne "[y/n]" while true do read -rN1 input case $input in [yY][eE][sS]|[yY]) return 0 break ;; [nN][oO]|[nN]) return 1 ;; esac done } check_deps_pkg() { for NAME in "${PKG_DEPS[@]}" do dpkg -s $NAME &> /dev/null CODE=$? if ! [ "$CODE" -ne 1 ]; then echo -ne "\nInstall $NAME ? " if choice 2>/dev/null; then echo -ne "\n$APT_INST $NAME\n" $APT_INST $NAME else echo -ne "\n\nAbort install script, package $NAME is required for work $PKG_NAME.\n" exit 1; fi fi done } #### Main check_root check_deps_pkg echo -ne "\nYou want to install dbeaver-ce ($PKG_NAME)? " if choice 2>/dev/null; then echo -ne "\nAdd repository for dbeaver-ce\n" $APT_INST apt-transport-https wget wget -O /etc/apt/keyrings/dbeaver.asc https://dbeaver.io/debs/dbeaver.gpg.key echo "deb [signed-by=/etc/apt/keyrings/dbeaver.asc] https://dbeaver.io/debs/dbeaver-ce /" | tee /etc/apt/sources.list.d/dbeaver.list echo -e "\nUpdate apt" $APT_UPDATE echo -ne "\n$APT_INST $PKG_NAME\n" $APT_INST $PKG_NAME fi