version 2.0.0, refactored out cache, introduced external settings file

This commit is contained in:
pyr0ball 2023-03-09 10:25:01 -08:00
parent 7e2060a53e
commit fbb7b0b468
3 changed files with 65 additions and 98 deletions

View file

@ -4,7 +4,7 @@
################################################################### ###################################################################
# initial vars # initial vars
VERSION=1.1 VERSION=2.0.0
scripttitle="Pyr0ball's Reductive Bash Library Installer - v$VERSION" scripttitle="Pyr0ball's Reductive Bash Library Installer - v$VERSION"
rundir=${0%/*} rundir=${0%/*}
source ${rundir}/functions source ${rundir}/functions
@ -181,10 +181,6 @@ userinstall(){
echo -e "$prbl_bashrc" >> $HOME/.bashrc.d/00-prbl.bashrc && boxborder "bashc.d/00-prbl installed..." || warn "Malformed append on ${lbl}${HOME}/.bashrc.d/00-prbl.bashrc${dfl}. Check this file for errors" echo -e "$prbl_bashrc" >> $HOME/.bashrc.d/00-prbl.bashrc && boxborder "bashc.d/00-prbl installed..." || warn "Malformed append on ${lbl}${HOME}/.bashrc.d/00-prbl.bashrc${dfl}. Check this file for errors"
fi fi
# Check crontab for quickinfo cron task
if [[ -z $(crontab -l | grep quickinfo) ]] ; then
crontab -l -u $runuser | cat - ${rundir}/lib/quickinfo.cron | crontab -u $runuser - && boxborder "QuickInfo cron task created." || warn "QuickInfo cron task creation failed. Check ${lbl}crontab -e${dfl} for errors"
fi
# Create the quickinfo cache directory # Create the quickinfo cache directory
mkdir -p $HOME/.quickinfo mkdir -p $HOME/.quickinfo
@ -250,11 +246,9 @@ globalinstall(){
if [[ $(cat /home/${selecteduser}/.bashrc | grep -c prbl) == 0 ]] ; then if [[ $(cat /home/${selecteduser}/.bashrc | grep -c prbl) == 0 ]] ; then
echo -e "$bashrc_append" >> /home/${selecteduser}/.bashrc && boxborder "bashc.d installed..." || warn "Malformed append on ${lbl}/home/${selecteduser}/.bashrc${dfl}. Check this file for errors" echo -e "$bashrc_append" >> /home/${selecteduser}/.bashrc && boxborder "bashc.d installed..." || warn "Malformed append on ${lbl}/home/${selecteduser}/.bashrc${dfl}. Check this file for errors"
fi fi
crontab -l -u $selecteduser | cat - ${rundir}/lib/quickinfo.cron | crontab -u $selecteduser -
mkdir -p /home/${selecteduser}/.quickinfo
chown -R ${selecteduser}:${selecteduser} /home/${selecteduser} chown -R ${selecteduser}:${selecteduser} /home/${selecteduser}
if [[ "$bins_missing" == "false" ]] ; then if [[ "$bins_missing" == "false" ]] ; then
su ${selecteduser} -c /home/${selecteduser}.bashrc.d/11-quickinfo.bashrc -c su ${selecteduser} -c /home/${selecteduser}.bashrc.d/11-quickinfo.bashrc
fi fi
fi fi
done done

View file

@ -9,22 +9,57 @@
# Written by Alan "pyr0ball" Weinstock # # Written by Alan "pyr0ball" Weinstock #
############################################################### ###############################################################
# Preferences: quickinfo_version=2.0.0
# Network Adapter Preferences
show_disconnected=true
# separate adapter names with '\|' ex. "lo\|tun0"
filtered_adapters="lo"
# Disks
# separate disk types with '\|' ex. "sd\|nvme"
allowed_disk_prefixes="sd\|md\|mapper\|nvme\|mmcblk\|root"
disallowed_disks="boot"
# source PRbL functions
source $prbl_functions
prbl_functons_req_ver=1.1.3 prbl_functons_req_ver=1.1.3
# Uses a wide variety of methods to check which distro this is run on
# TODO: Add alternative handling for other environments
if type lsb_release >/dev/null 2>&1; then
# linuxbase.org
OS=$(lsb_release -si)
VER=$(lsb_release -sr)
elif [ -f /etc/debian_version ]; then
# Older Debian/Ubuntu/etc.
OS=Debian
VER=$(cat /etc/debian_version)
elif [ -f /etc/os-release ]; then
# freedesktop.org and systemd
. /etc/os-release
OS=$NAME
VER=$VERSION_ID
elif [ -f /etc/lsb-release ]; then
# For some versions of Debian/Ubuntu without lsb_release command
. /etc/lsb-release
OS=$DISTRIB_ID
VER=$DISTRIB_RELEASE
elif [ -f /etc/debian_version ]; then
# Older Debian/Ubuntu/etc.
OS=Debian
VER=$(cat /etc/debian_version)
elif [ -f /etc/SuSe-release ]; then
# Older SuSE/etc.
...
elif [ -f /etc/redhat-release ]; then
# Older Red Hat, CentOS, etc.
...
else
# Fall back to uname, e.g. "Linux <version>", also works for BSD, etc.
OS=$(uname -s)
VER=$(uname -r)
fi
# source PRbL functions
if [ ! -z $prbl_functions ] ; then
source $prbl_functions
else
echo -e "PRbL functions not defined. Check ~/.bashrc"
fi
settinsfile=$(echo "$rundir_abolute/${0##*/}" | cut -d '\.' -f1)
settinsfile="$settingfule.settings"
source $settingsfile
# check PRbL functions version
if [[ $(vercomp $functionsrev $prbl_functons_req_ver) == 2 ]] ; then if [[ $(vercomp $functionsrev $prbl_functons_req_ver) == 2 ]] ; then
warn "PRbL functions installed are lower than recommended ($prbl_functons_req_ver)" warn "PRbL functions installed are lower than recommended ($prbl_functons_req_ver)"
warn "Some features may not work as expected" warn "Some features may not work as expected"
@ -35,67 +70,6 @@ else
fi fi
fi fi
# Cache File Parameters
cachefile=quickinfo.cache
cachefile_location=$HOME/.quickinfo
if [ ! -d $cachefile_location ] ; then
mkdir -p $cachefile_location
fi
cache=$(echo "${cachefile_location}/${cachefile}")
################################
quickinfo-cache (){
# Uses a wide variety of methods to check which distro this is run on
if type lsb_release >/dev/null 2>&1; then
# linuxbase.org
OS=$(lsb_release -si)
VER=$(lsb_release -sr)
elif [ -f /etc/debian_version ]; then
# Older Debian/Ubuntu/etc.
OS=Debian
VER=$(cat /etc/debian_version)
elif [ -f /etc/os-release ]; then
# freedesktop.org and systemd
. /etc/os-release
OS=$NAME
VER=$VERSION_ID
elif [ -f /etc/lsb-release ]; then
# For some versions of Debian/Ubuntu without lsb_release command
. /etc/lsb-release
OS=$DISTRIB_ID
VER=$DISTRIB_RELEASE
elif [ -f /etc/debian_version ]; then
# Older Debian/Ubuntu/etc.
OS=Debian
VER=$(cat /etc/debian_version)
elif [ -f /etc/SuSe-release ]; then
# Older SuSE/etc.
...
elif [ -f /etc/redhat-release ]; then
# Older Red Hat, CentOS, etc.
...
else
# Fall back to uname, e.g. "Linux <version>", also works for BSD, etc.
OS=$(uname -s)
VER=$(uname -r)
fi
#check for updates
packages_cache=$(/usr/lib/update-notifier/apt-check --human-readable | grep "can be")
supdates_cache=$(/usr/lib/update-notifier/apt-check --human-readable | grep "security updates")
# Echo the parameters out to the cache file with a "key" marker
# at the beginning of the line. This key is used to pull the specific
# line needed for each parameter using grep, then cut out of the
# final echo. Please do not add or remove white space to the beginning of
# the lines if this is modified in future.
echo "
OS${OS}
VER${VER}
CACHEPACK${packages_cache}
CACHESUPD${supdates_cache}" > $cache || fail
}
################################ ################################
# Help - displayed when user inputs the -h option, or upon # Help - displayed when user inputs the -h option, or upon
@ -143,22 +117,11 @@ while getopts ":cdh" opt
# information to be displayed) # information to be displayed)
#[[ "$-" == *i* ]] || fail "non-interactive session" #[[ "$-" == *i* ]] || fail "non-interactive session"
# Checks if cachefile exists yet, and if not, warns the user
if [ ! -f $cache ] ; then
cachemissing=$(echo "Quickinfo cache file is inaccessible. some information may be missing")
fi
### All curl functions have been migrated to quickinfo-cache function
################################ ################################
# Global parameters pulled from cache file # Global parameters pulled from cache file
packages=$(cat ${cache} | grep CACHEPACK | cut -c 12- )
supdates=$(cat ${cache} | grep CACHESUPD | cut -c 12- )
location=$(uname -a | awk '{print $2}') location=$(uname -a | awk '{print $2}')
image_version=$(uname -r) image_version=$(uname -r)
OS=$(cat ${cache} | grep OS | cut -c 5- )
VER=$(cat ${cache} | grep VER | cut -c 6- )
software_version=$(echo $OS $VER) software_version=$(echo $OS $VER)
# Checks if variables are empty (due to webapp being down on last # Checks if variables are empty (due to webapp being down on last
# cache run or other possible reasons) and fills the variables # cache run or other possible reasons) and fills the variables
@ -183,15 +146,12 @@ if [ -z "$cxps_serial" ]
fi fi
if [ "$any_missing" == "true" ] if [ "$any_missing" == "true" ]
then then
vars_missing=$(echo "Something went wrong gathering information. Check WebApp") vars_missing=$(echo "Something went wrong gathering information")
fi fi
# Gets public IP address using opendns # Gets public IP address using opendns
wan_ip=$(wget -qO- http://ipecho.net/plain | xargs echo) wan_ip=$(wget -qO- http://ipecho.net/plain | xargs echo)
# Global parameters using methods that do not require WebApp
### These functions run each time the script is run, regardless of caching option
# Checks memory usage # Checks memory usage
mem_usage=$(free -m | grep Mem | awk '{print $3"M/"$2"M"}') mem_usage=$(free -m | grep Mem | awk '{print $3"M/"$2"M"}')

View file

@ -0,0 +1,13 @@
# Network Adapter Preferences
# set false to hide network adapters without valid IP's
show_disconnected=true
# Ignored network adapter names (regex match)
# separate adapter names with '\|' ex. "lo\|tun0"
filtered_adapters="lo"
# Disks
# separate disk types with '\|' ex. "sd\|nvme"
allowed_disk_prefixes="sd\|md\|mapper\|nvme\|mmcblk\|root"
disallowed_disks="boot"