Installer installiert Pakete
This commit is contained in:
parent
edcb66a852
commit
fc3a9c6bf7
3 changed files with 141 additions and 0 deletions
20
desec-dns.sh
Executable file
20
desec-dns.sh
Executable file
|
@ -0,0 +1,20 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# Screen prepare
|
||||
screen_size=$(stty size 2>/dev/null || echo 24 80)
|
||||
rows=$(echo "$screen_size" | awk '{print $1}')
|
||||
columns=$(echo "$screen_size" | awk '{print $2}')
|
||||
|
||||
# Divide by two so the dialogs take up half of the screen, which looks nice.
|
||||
r=$(( rows / 2 ))
|
||||
c=$(( columns / 2 ))
|
||||
# Unless the screen is tiny
|
||||
r=$(( r < 20 ? 20 : r ))
|
||||
c=$(( c < 70 ? 70 : c ))
|
||||
|
||||
if [ -f ./functions.sh ]; then
|
||||
. ./functions.sh
|
||||
else
|
||||
echo "functions.sh does not exists"
|
||||
exit 1
|
||||
fi
|
87
functions.sh
Normal file
87
functions.sh
Normal file
|
@ -0,0 +1,87 @@
|
|||
setColors() {
|
||||
COL_NC='\e[0m' # No Color
|
||||
COL_LIGHT_GREEN='\e[1;32m'
|
||||
COL_LIGHT_RED='\e[1;31m'
|
||||
TICK="[${COL_LIGHT_GREEN}✓${COL_NC}]"
|
||||
CROSS="[${COL_LIGHT_RED}✗${COL_NC}]"
|
||||
INFO="[i]"
|
||||
# shellcheck disable=SC2034
|
||||
DONE="${COL_LIGHT_GREEN} done!${COL_NC}"
|
||||
OVER="\\r\\033[K"
|
||||
}
|
||||
|
||||
prepare_screen() {
|
||||
screen_size=$(stty size 2>/dev/null || echo 24 80)
|
||||
rows=$(echo "$screen_size" | awk '{print $1}')
|
||||
columns=$(echo "$screen_size" | awk '{print $2}')
|
||||
# Divide by two so the dialogs take up half of the screen, which looks nice.
|
||||
r=$(( rows / 2 ))
|
||||
c=$(( columns / 2 ))
|
||||
# Unless the screen is tiny
|
||||
r=$(( r < 20 ? 20 : r ))
|
||||
c=$(( c < 70 ? 70 : c ))
|
||||
}
|
||||
|
||||
show_ascii_berry() {
|
||||
echo -e "
|
||||
${COL_LIGHT_GREEN}.;;,.
|
||||
.ccccc:,.
|
||||
:cccclll:. ..,,
|
||||
:ccccclll. ;ooodc
|
||||
'ccll:;ll .oooodc
|
||||
.;cll.;;looo:.
|
||||
${COL_LIGHT_RED}.. ','.
|
||||
.',,,,,,'.
|
||||
.',,,,,,,,,,.
|
||||
.',,,,,,,,,,,,....
|
||||
....''',,,,,,,'.......
|
||||
......... .... .........
|
||||
.......... ..........
|
||||
.......... ..........
|
||||
......... .... .........
|
||||
........,,,,,,,'......
|
||||
....',,,,,,,,,,,,.
|
||||
.',,,,,,,,,'.
|
||||
.',,,,,,'.
|
||||
..'''.${COL_NC}
|
||||
"
|
||||
}
|
||||
is_command() {
|
||||
# Checks to see if the given command (passed as a string argument) exists on the system.
|
||||
# The function returns 0 (success) if the command exists, and 1 if it doesn't.
|
||||
local check_command="$1"
|
||||
|
||||
command -v "${check_command}" >/dev/null 2>&1
|
||||
}
|
||||
package_manager_detect() {
|
||||
if is_command apt-get ; then
|
||||
PKG_MANAGER="apt-get"
|
||||
UPDATE_PKF_CACHE="${PKG_MANAGER} update"
|
||||
PKG_INSTALL=("${PKG_MANAGER}" -qq --no-install-recommends install)
|
||||
elif is_command rpm ; then
|
||||
if is_command dnf ; then
|
||||
PKG_MANAGER="dnf"
|
||||
else
|
||||
PKG_MANAGER="yum"
|
||||
fi
|
||||
PKG_INSTALL=("${PKG_MANAGER}" install -y)
|
||||
fi
|
||||
}
|
||||
install_dependencies() {
|
||||
declare -a installArray
|
||||
for i in "$@"; do
|
||||
printf " %b Checking for %s...\\n" "${INFO}" "${i}"
|
||||
if is_command ${i} ; then
|
||||
printf " %b Checking for %s\\n" "${TICK}" "${i}"
|
||||
else
|
||||
printf " %b Checking for %s (will be installed)\\n" "${CROSS}" "${i}"
|
||||
installArray+="${i}"
|
||||
fi
|
||||
done
|
||||
if [[ "${#installArray[@]}" -gt 0 ]]; then
|
||||
printf " %b Processing %s install(s) for: %s, please wait...\\n" "${INFO}" "${PKG_MANAGER}" "${installArray[*]}"
|
||||
printf '%*s\n' "$columns" '' | tr " " -;
|
||||
"${SUDO}" "${PKG_INSTALL[@]}" "${installArray[@]}"
|
||||
printf '%*s\n' "$columns" '' | tr " " -;
|
||||
fi
|
||||
}
|
34
install.sh
Executable file
34
install.sh
Executable file
|
@ -0,0 +1,34 @@
|
|||
#!/usr/bin/env bash
|
||||
if [ -f ./functions.sh ]; then
|
||||
. ./functions.sh
|
||||
else
|
||||
echo "functions.sh does not exists"
|
||||
exit 1
|
||||
fi
|
||||
###### Prepare Environement ######
|
||||
setColors
|
||||
prepare_screen
|
||||
package_manager_detect
|
||||
show_ascii_berry
|
||||
######## FIRST CHECK ########
|
||||
# Must be root to install
|
||||
echo ":::"
|
||||
if [[ $EUID -eq 0 ]];then
|
||||
echo "::: You are root."
|
||||
else
|
||||
echo "::: sudo will be used for the install."
|
||||
# Check if it is actually installed
|
||||
# If it isn't, exit because the install cannot complete
|
||||
if [[ $(command -v sudo) ]];then
|
||||
export SUDO="sudo"
|
||||
export SUDOE="sudo -E"
|
||||
else
|
||||
echo "::: Please install sudo or run this as root."
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
printf ":::\\n\\n"
|
||||
|
||||
# Check for dependencies
|
||||
install_dependencies whiptail
|
||||
install_path=$(whiptail --inputbox "Text" "${r}" "${c}" 2>&1 >/dev/tty)
|
Loading…
Reference in a new issue