Push improvements form the PQB work
This commit is contained in:
parent
f3323b159b
commit
1e3c60630e
68 changed files with 409 additions and 219 deletions
|
@ -1,4 +1,7 @@
|
|||
#! /usr/bin/env bash
|
||||
USER_HOME=$HOME
|
||||
[[ -n "${SUDO_USER}" ]] && USER_HOME="$(eval "echo ~${SUDO_USER}")"
|
||||
. ${SHRC_D:-$USER_HOME/.pqb.shrc.d}/01_util.functions
|
||||
|
||||
unset MISSING_APT_PACKAGES
|
||||
export MISSING_APT_PACKAGES=()
|
||||
|
@ -8,7 +11,7 @@ APT_OK=$([[ -e $(type -fP apt) ]] && [[ -x $(type -fP apt | head -1) ]] && echo
|
|||
|
||||
# TODO: Implement a test for specific Package Sources per package check
|
||||
PACKAGE_SOURCES=$( \
|
||||
grep -h ^deb /etc/apt/sources.list /etc/apt/sources.list.d/* \
|
||||
grep -h ^deb /etc/apt/sources.list /etc/apt/sources.list.d/* 2>/dev/null \
|
||||
| sed 's/\[.*\] //; s/^deb //' \
|
||||
| sort -u\
|
||||
)
|
||||
|
@ -70,22 +73,31 @@ function check-exist() {
|
|||
}
|
||||
|
||||
#### Output starts here
|
||||
PROD_NAME=$( sudo dmidecode --type 200 2> /dev/null | tail +5 | tail -2 | head -1 | awk '{print $1}')
|
||||
|
||||
MACHINE_INFO_FORMAT='%-14s %-19s %-13s %-11s %s\n'
|
||||
MACHINE_INFO_FIELDS=("Manufacturer" "Model family" "Model/MTM" "S/N" "BIOS Firmware")
|
||||
printf "$MACHINE_INFO_FORMAT" "${MACHINE_INFO_FIELDS[@]}"
|
||||
printf "$MACHINE_INFO_FORMAT" "$(
|
||||
sudo dmidecode -s system-manufacturer
|
||||
)" "$(sudo dmidecode -s system-family
|
||||
)" "${PROD_NAME:-$(
|
||||
sudo dmidecode -s system-product-name
|
||||
)}" "$(sudo dmidecode -s system-serial-number
|
||||
)" "$(sudo dmidecode -s bios-version)"
|
||||
printf " CPU: %s\n" "$(
|
||||
sudo dmidecode -s processor-version
|
||||
)"
|
||||
echo ''
|
||||
#### These all run better with sudo
|
||||
if ( check-exist 'dmidecode' > /dev/null ); then
|
||||
if recommend_root; then
|
||||
PROD_NAME=$( dmidecode --type 200 2> /dev/null | tail +5 | tail -2 | head -1 | awk '{print $1}')
|
||||
|
||||
MACHINE_INFO_FORMAT='%-14s %-19s %-13s %-11s %s\n'
|
||||
MACHINE_INFO_FIELDS=("Manufacturer" "Model family" "Model/MTM" "S/N" "BIOS Firmware")
|
||||
printf "$MACHINE_INFO_FORMAT" "${MACHINE_INFO_FIELDS[@]}"
|
||||
printf "$MACHINE_INFO_FORMAT" "$(
|
||||
dmidecode -s system-manufacturer
|
||||
)" "$(dmidecode -s system-family
|
||||
)" "${PROD_NAME:-$(
|
||||
dmidecode -s system-product-name
|
||||
)}" "$(dmidecode -s system-serial-number
|
||||
)" "$(dmidecode -s bios-version)"
|
||||
printf " CPU: %s\n" "$(
|
||||
dmidecode -s processor-version
|
||||
)"
|
||||
echo ''
|
||||
else
|
||||
echo "Running dmidecode requires root access, skipping machine info collection..."
|
||||
fi
|
||||
else
|
||||
echo "dmidecode is required to collect System and BIOS information"
|
||||
fi
|
||||
|
||||
echo "Shell: $SHELL (availabe: $(echo $(cat /etc/shells | grep -v 'shells:' | sed "s/^\(.*\/\)*//" | sort -u)))"
|
||||
echo ''
|
||||
|
@ -99,13 +111,17 @@ echo ''
|
|||
print-result 'Executable `apt`' $(test-print $APT_OK "Found" "Missing") "$(test-print $APT_OK '' "$(printf 'repair by running:\n%-41sfix-apt.sh')" )"
|
||||
echo ''
|
||||
check-exist 'Byobu' '/usr/bin/byobu-launch' || MISSING_APT_PACKAGES+=('byobu')
|
||||
check-exist "setxkbmap" '' '' '(Optional)' \
|
||||
|| MISSING_APT_PACKAGES+=('setxkbmap')
|
||||
check-exist 'oh-my-posh'
|
||||
check-exist '~/.poshtheme.omp.json' "~/.poshtheme.omp.json" "-r"
|
||||
check-exist '~/.poshtheme.omp.json' "${USER_HOME}/.poshtheme.omp.json" "-r"
|
||||
check-exist 'tmux' || MISSING_APT_PACKAGES+=('tmux')
|
||||
check-exist 'git' || MISSING_APT_PACKAGES+=('git')
|
||||
check-exist 'emacs' || MISSING_APT_PACKAGES+=('emacs')
|
||||
check-exist 'monit' || MISSING_APT_PACKAGES+=('monit')
|
||||
check-exist 'direnv' || MISSING_APT_PACKAGES+=('direnv')
|
||||
check-exist "chezmoi" '' '' '' 'wget -O- chezmoi.io/get | bash # or'
|
||||
# wget -O- lksz.me/dotfiles | bash'
|
||||
check-exist 'terraform' '' '' '' "$( \
|
||||
[[ -r /usr/share/keyrings/apt.releases.hashicorp.com.gpg ]] \
|
||||
&& MISSING_APT_PACKAGES+=('terraform') \
|
||||
|
@ -114,10 +130,6 @@ check-exist 'terraform' '' '' '' "$( \
|
|||
|| SUGGESTED+=(
|
||||
'sz-add-my-apt-repos' '# followed by:' 'sudo apt install terraform', ''
|
||||
)
|
||||
check-exist "setxkbmap" '' '' '(Optional)' \
|
||||
|| MISSING_APT_PACKAGES+=('setxkbmap')
|
||||
check-exist "chezmoi" '' '' '' 'wget -O- chezmoi.io/get | bash # or
|
||||
# wget -O- lksz.me/dotfiles | bash'
|
||||
check-exist "gcloud" '' '' '' "$( \
|
||||
[[ -r /usr/share/keyrings/apt.releases.hashicorp.com.gpg ]] \
|
||||
&& MISSING_APT_PACKAGES+=('terraform') \
|
||||
|
@ -125,11 +137,13 @@ check-exist "gcloud" '' '' '' "$( \
|
|||
)" \
|
||||
|| SUGGESTED+=( 'sz-add-my-apt-repos' '# followed by:' 'sudo apt install gcloud', '' )
|
||||
|
||||
check-exist 'dmidecode'
|
||||
|
||||
check-exist 'bash completion' '/usr/share/bash-completion/bash_completion' '-r'
|
||||
check-exist 'CodeNewRoman Nerd Font' '~/.local/share/fonts/NF_CodeNewRoman' '-d'
|
||||
check-exist 'FiraCode Nerd Font' '~/.local/share/fonts/NF_FiraCode' '-d'
|
||||
check-exist '~/bin' "~/bin" '-d' '(Optional)'
|
||||
check-exist '~/.local/bin' "~/.local/bin" '-d' '(Optional)'
|
||||
check-exist 'CodeNewRoman Nerd Font' '${USER_HOME}/.local/share/fonts/NF_CodeNewRoman' '-d'
|
||||
check-exist 'FiraCode Nerd Font' '${USER_HOME}/.local/share/fonts/NF_FiraCode' '-d'
|
||||
check-exist '~/bin' "${USER_HOME}/bin" '-d' '(Optional)'
|
||||
check-exist '~/.local/bin' "${USER_HOME}/.local/bin" '-d' '(Optional)'
|
||||
echo ""
|
||||
|
||||
[[ -n $SUGGESTED ]] && echo 'You might want to run the following commands:' && printf " %s\n" "${SUGGESTED[@]}"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue