Browse Source

miaou-bash --doctor

main
pvincent 4 days ago
parent
commit
48e3e11695
  1. 3
      bin/miaou-bash
  2. 2
      etc/bash_completion.d/miaou-bash.complete
  3. 56
      lib/doctor.bash
  4. 1
      test/miaou-bash.test.bash

3
bin/miaou-bash

@ -585,7 +585,7 @@ function cleanup {
}
function usage {
echo "$(basename "$0") <SCRIPT> [...SCRIPT_ARGS] | --help | --self-upgrade | --uninstall | --version"
echo "$(basename "$0") <SCRIPT> [...SCRIPT_ARGS] | --doctor | --help | --self-upgrade | --uninstall | --version"
}
function version {
@ -610,6 +610,7 @@ function parse_options {
case "$1" in
--help) usage && builtin exit ;;
--version) version && builtin exit ;;
--doctor) SCRIPT="$MIAOU_BASH_DIR"/lib/doctor.bash && return ;;
--self-upgrade) SCRIPT="$MIAOU_BASH_DIR"/lib/self-upgrade.bash && return ;;
--uninstall) SCRIPT="$MIAOU_BASH_DIR"/lib/uninstall.bash && return ;;
-*) >&2 echo "ERROR: option '$1' unknown!" && usage && builtin exit 2 ;;

2
etc/bash_completion.d/miaou-bash.complete

@ -3,7 +3,7 @@ function _miaou_bash {
if ((COMP_CWORD == 1)); then
if [[ $cur =~ ^- ]]; then
# compopt -o nospace
mapfile -t COMPREPLY < <(compgen -W "--self-upgrade --version --help --uninstall" -- "$cur")
mapfile -t COMPREPLY < <(compgen -W "--doctor --self-upgrade --version --help --uninstall" -- "$cur")
else
compopt -o filenames
mapfile -t COMPREPLY < <(compgen -f -- "$cur")

56
lib/doctor.bash

@ -0,0 +1,56 @@
# CONSTANTS
# FUNCTIONS
function bash_version {
bash --version | head -n1 | cut -d ' ' -f4 | grep -oE '[0-9]+\.[0-9]+\.[0-9]+'
}
function distribution {
grep ^ID= /etc/os-release | cut -d= -f2
}
function debian_version {
grep ^VERSION= /etc/os-release | cut -d= -f2
}
function doctor_distribution {
echo --distribution--
fetch_distro_like
echo "DISTRO FAMILY = $DISTRO_LIKE"
distro_name=$(distribution)
echo "DISTRO NAME = $distro_name"
if [[ $distro_name == 'debian' ]]; then
echo "DISTRO VERSION= $(debian_version)"
fi
}
function doctor_miaou {
echo --miaou--
echo "MIAOU_BASH_DIR = $MIAOU_BASH_DIR"
fetch_mode
echo "MIAOU_BASH_MODE = $MIAOU_BASH_MODE"
echo "MIAOU_BASH_MODE_OWNER = $MIAOU_BASH_MODE_OWNER"
}
function doctor_console {
echo --console--
echo "BASH_VERSION = $(bash_version)"
echo "LANG = ${LANG:-}"
echo "TERM = ${TERM:-}"
}
function doctor_tests {
echo --tests--
"$MIAOU_BASH_DIR"/test/miaou-bash.test.bash 2>&1
}
# MAIN
source "$MIAOU_BASH_DIR"/lib/functions.bash
echo == MIAOU DOCTOR ==
doctor_distribution
doctor_console
doctor_miaou
doctor_tests

1
test/miaou-bash.test.bash

@ -292,6 +292,7 @@ time {
assert_locales_equally_populated en es fr
}
failed=${#failures[@]}
success=$((test_count - failed))

Loading…
Cancel
Save