kubbebrowser/tools/doctor.sh

46 lines
1.4 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
project_root="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
check_command() {
local command_name="$1"
if command -v "${command_name}" >/dev/null 2>&1; then
printf '%-24s %s\n' "${command_name}" "$(command -v "${command_name}")"
else
printf '%-24s %s\n' "${command_name}" "MISSING"
fi
}
printf 'Kubbe environment doctor\n'
printf 'Project: %s\n\n' "${project_root}"
for command_name in cmake ninja gcc g++ clang clang++ gdb clang-tidy llvm-symbolizer pkg-config git python3; do
check_command "${command_name}"
done
if [[ -x "${project_root}/.toolchains/ccache/current/ccache" ]]; then
printf '%-24s %s\n' "ccache (local)" "${project_root}/.toolchains/ccache/current/ccache"
else
check_command ccache
fi
printf '\nPackage visibility\n'
for package_name in sdl3 vulkan gl; do
if pkg-config --exists "${package_name}"; then
printf '%-24s %s\n' "${package_name}" "$(pkg-config --modversion "${package_name}")"
else
printf '%-24s %s\n' "${package_name}" "MISSING"
fi
done
printf '\nVendor source roots\n'
for vendor_name in sdl skia v8 vulkan ccache valgrind googletest; do
if [[ -d "${project_root}/vendor/source/${vendor_name}" ]]; then
printf '%-24s %s\n' "${vendor_name}" "READY"
else
printf '%-24s %s\n' "${vendor_name}" "MISSING"
fi
done