Installer installiert Pakete
This commit is contained in:
parent
edcb66a852
commit
fc3a9c6bf7
3 changed files with 141 additions and 0 deletions
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
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue