171 lines
3.5 KiB
Bash
171 lines
3.5 KiB
Bash
#!/bin/bash
|
|
|
|
get_dist() {
|
|
echo $(lsb_release -si)
|
|
}
|
|
|
|
is_command() {
|
|
local check_command="$1"
|
|
command -v "${check_command}" >/dev/null 2>&1
|
|
}
|
|
|
|
git_update() {
|
|
local git_name="$1"
|
|
local git_path="$2"
|
|
local git_repo="$3"
|
|
if [ ! -d "$git_path" ]; then
|
|
printf "$COL_YELLOW" "* Installing $git_name"
|
|
git clone --quiet $git_repo $git_path
|
|
else
|
|
printf "$COL_YELLOW" "* Updating $git_name"
|
|
git -C $git_path pull
|
|
fi
|
|
}
|
|
|
|
should_apt_last_update() {
|
|
LAST_UPDATED=$( stat --format="%X" /var/cache/apt/pkgcache.bin )
|
|
UNIX_TIME=$( date +%s )
|
|
TIME_DIFF=$(( UNIX_TIME - LAST_UPDATED ))
|
|
if [[ "${TIME_DIFF}" -gt 43200 ]]
|
|
then
|
|
# 0 = true
|
|
return 0
|
|
else
|
|
# 1 = false
|
|
return 1
|
|
fi
|
|
}
|
|
|
|
get_pkg_mgr() {
|
|
if is_command apt-get ; then
|
|
echo "apt-get"
|
|
elif is_command rpm ; then
|
|
# Then check if dnf or yum is the package manager
|
|
if is_command dnf ; then
|
|
echo "dnf"
|
|
else
|
|
echo "yum"
|
|
fi
|
|
fi
|
|
}
|
|
|
|
pkgmgr_update(){
|
|
|
|
# Get Command language
|
|
PKG_MANAGER=$( get_pkg_mgr )
|
|
|
|
# Run apt-get update for distros that use apt-get
|
|
if [ "$PKG_MANAGER" == "apt-get" ] ; then
|
|
if should_apt_last_update ; then
|
|
"${PKG_MANAGER} update"
|
|
fi
|
|
fi
|
|
|
|
if [ "$PKG_MANAGER" == "apt-get" ] ; then
|
|
"$PKG_MANAGER" full-upgrade -y
|
|
elif [ "$PKG_MANAGER" == "dnf" ] ; then
|
|
"$PKG_MANAGER" update
|
|
elif [ "$PKG_MANAGER" == "yum" ] ; then
|
|
"$PKG_MANAGER" update
|
|
fi
|
|
|
|
}
|
|
|
|
|
|
get_system_used_space() {
|
|
usedspace=$(df --output=used -B1 / | tail -n 1| cut -d'%' -f1)
|
|
printf "$COL_RED" "$usedspace"
|
|
echo $usedspace
|
|
}
|
|
|
|
human_readable_bytes() {
|
|
local spacebytes="$1"
|
|
printf "$COL_YELLOW" "test $1 test"
|
|
spacekb=`expr "$spacebytes" / 1024`
|
|
spacemb=`expr "$spacebytes" / 1024 / 1024`
|
|
spacegb=`expr "$spacebytes" / 1024 / 1024 / 1024`
|
|
|
|
if [[ "$spacegb" -gt 0 ]]
|
|
then
|
|
spacewords="$spacegb GB"
|
|
elif [[ "$spacemb" -gt 0 ]]
|
|
then
|
|
spacewords="$spacemb MB"
|
|
elif [[ "$spacekb" -gt 0 ]]
|
|
then
|
|
spacewords="$spacekb KB"
|
|
elif [[ "$spacebytes" -gt 0 ]]
|
|
then
|
|
spacewords="$spacebytes Bytes"
|
|
else
|
|
spacewords="zero space"
|
|
fi
|
|
}
|
|
|
|
pkgmgr_clean(){
|
|
|
|
# Get Command language
|
|
PKG_MANAGER=$( get_pkg_mgr )
|
|
|
|
printf "$COL_YELLOW" "Cleaning cache for $PKG_MANAGER"
|
|
|
|
if [ "$PKG_MANAGER" == "apt-get" ] ; then
|
|
"$PKG_MANAGER" clean
|
|
"$PKG_MANAGER" autoclean
|
|
elif [ "$PKG_MANAGER" == "dnf" ] ; then
|
|
"$PKG_MANAGER" clean dbcache
|
|
"$PKG_MANAGER" clean all
|
|
elif [ "$PKG_MANAGER" == "yum" ] ; then
|
|
"$PKG_MANAGER" clean packages
|
|
"$PKG_MANAGER" clean headers
|
|
"$PKG_MANAGER" clean metadata
|
|
"$PKG_MANAGER" clean all
|
|
fi
|
|
|
|
}
|
|
|
|
|
|
install_pkg() {
|
|
|
|
# package to install
|
|
local pkg_to_install="$1"
|
|
|
|
# Get Command language
|
|
PKG_MANAGER=$( get_pkg_mgr )
|
|
|
|
# Run apt-get update for distros that use apt-get
|
|
if [ "$PKG_MANAGER" == "apt-get" ] ; then
|
|
if should_apt_last_update ; then
|
|
"${PKG_MANAGER} update"
|
|
fi
|
|
fi
|
|
|
|
# Install the package
|
|
local PKG_INSTALL=("${PKG_MANAGER}" install -y)
|
|
|
|
"${PKG_INSTALL[@]}" "${pkg_to_install}"
|
|
}
|
|
|
|
|
|
service_exists() {
|
|
local n=$1
|
|
if [[ $(systemctl list-units --all -t service --full --no-legend "$n.service" | sed 's/^\s*//g' | cut -f1 -d' ') == $n.service ]]; then
|
|
return 0
|
|
else
|
|
return 1
|
|
fi
|
|
}
|
|
|
|
is_shared_lib_present() {
|
|
local libtocheck="$1"
|
|
printf "$COL_YELLOW" "Checking if Shared library is installed: $libtocheck"
|
|
if ! ldconfig -p | grep $libtocheck
|
|
then
|
|
printf "$COL_YELLOW" "$libtocheck is not installed"
|
|
return 1
|
|
else
|
|
printf "$COL_YELLOW" "$libtocheck is installed"
|
|
return 0
|
|
fi
|
|
}
|