122 lines
3.5 KiB
Bash
Executable File
122 lines
3.5 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
quick_report() {
|
|
local GPUS
|
|
local OS_KERNEL
|
|
local PRETTY_NAME
|
|
local QUICKEMU
|
|
local VERSION
|
|
OS_KERNEL=$(uname -s)
|
|
|
|
if [ "${OS_KERNEL}" == "Darwin" ]; then
|
|
# Get macOS product name and version using swvers
|
|
if [ -x "$(command -v sw_vers)" ]; then
|
|
PRETTY_NAME="$(sw_vers -productName) $(sw_vers -productVersion)"
|
|
else
|
|
PRETTY_NAME="macOS"
|
|
fi
|
|
elif [ -e /etc/os-release ]; then
|
|
PRETTY_NAME=$(grep PRETTY_NAME /etc/os-release | cut -d'"' -f2)
|
|
else
|
|
PRETTY_NAME="Unknown OS"
|
|
fi
|
|
|
|
CWD="$(dirname "${0}")"
|
|
if [ -x "${CWD}/quickemu" ]; then
|
|
QUICKEMU="${CWD}/quickemu"
|
|
elif [ -x "$(command -v quickemu)" ]; then
|
|
QUICKEMU="$(command -v quickemu)"
|
|
fi
|
|
|
|
if [ -n "${QUICKEMU}" ]; then
|
|
VERSION=$(${QUICKEMU} --version)
|
|
echo \
|
|
"----------------------------------
|
|
Quickemu ${VERSION}
|
|
----------------------------------"
|
|
echo -e "Distro:\t${PRETTY_NAME}"
|
|
echo -e "Kernel:\t$(uname -s -r -m)"
|
|
|
|
if [ "${OS_KERNEL}" == "Darwin" ]; then
|
|
echo -e "Memory:\t$(($(sysctl -n hw.memsize) / (1048576*1024)))G"
|
|
else
|
|
# Determine the number of gigabytes of RAM in the host by extracting the first numerical value from the output.
|
|
echo -e "Memory:\t$(free --giga -h | tr ' ' '\n' | grep -m 1 "[0-9]" | cut -d'G' -f 1)G"
|
|
fi
|
|
|
|
# Break IFS on new line
|
|
IFS=$'\n'
|
|
if [ "${OS_KERNEL}" == "Darwin" ]; then
|
|
# Get GPU information using system_profiler
|
|
GPUS=$(system_profiler SPDisplaysDataType | grep "Chipset Model" | awk -F: '{print $2}' | sed 's/^ *//')
|
|
else
|
|
GPUS=$(lspci | grep -i vga | cut -d':' -f3)
|
|
fi
|
|
|
|
if [ "$(echo "${GPUS}" | wc -l)" -eq 1 ]; then
|
|
echo "GPU:"
|
|
else
|
|
echo "GPUs:"
|
|
fi
|
|
for GPU in ${GPUS}; do
|
|
echo " -${GPU}"
|
|
done
|
|
else
|
|
echo \
|
|
"----------------------------------
|
|
Quickemu missing!
|
|
----------------------------------"
|
|
exit 1
|
|
fi
|
|
|
|
if command -v curl &> /dev/null; then
|
|
VERSION=$(curl --version)
|
|
echo \
|
|
"----------------------------------
|
|
curl $(echo "${VERSION}" | head -n 1 | cut -d' ' -f2)
|
|
----------------------------------"
|
|
echo -e "Libraries:$(echo "${VERSION}" | head -n 1 | cut -d')' -f2-)"
|
|
echo -e "Protocols:$(echo "${VERSION}" | tail -n +3 | head -n 1 | cut -d':' -f2-)"
|
|
echo -e "Features: $(echo "${VERSION}" | tail -n +4 | head -n 1 | cut -d':' -f2-)"
|
|
else
|
|
echo \
|
|
"----------------------------------
|
|
curl missing
|
|
----------------------------------"
|
|
fi
|
|
|
|
local HOST_ARCH
|
|
HOST_ARCH=$(uname -m)
|
|
local QEMU_ARCH="${HOST_ARCH}"
|
|
if [ "${HOST_ARCH}" == "arm64" ]; then
|
|
QEMU_ARCH="aarch64"
|
|
fi
|
|
|
|
if command -v "qemu-system-${QEMU_ARCH}" &> /dev/null; then
|
|
VERSION=$("qemu-system-${QEMU_ARCH}" --version | head -n 1 | cut -d' ' -f4)
|
|
echo \
|
|
"----------------------------------
|
|
QEMU ${VERSION}
|
|
----------------------------------"
|
|
"qemu-system-${QEMU_ARCH}" -cpu help
|
|
else
|
|
echo \
|
|
"----------------------------------
|
|
QEMU missing
|
|
----------------------------------"
|
|
fi
|
|
|
|
echo \
|
|
"----------------------------------
|
|
CPU
|
|
----------------------------------"
|
|
if [ "${OS_KERNEL}" == "Darwin" ]; then
|
|
sysctl -n machdep.cpu.brand_string
|
|
else
|
|
lscpu
|
|
fi
|
|
}
|
|
|
|
clear
|
|
quick_report | tee quickreport.txt
|