diff --git a/x86_64/qemu-boot.sh b/x86_64/qemu-boot.sh index 9df088c..ddf751c 100755 --- a/x86_64/qemu-boot.sh +++ b/x86_64/qemu-boot.sh @@ -21,6 +21,26 @@ set -e +checkDependencies() { + local missingCommands=() + local command + + for command in qemu-system-x86_64 qemu-img date dirname find sort head cut mkdir; do + if ! command -v "$command" &> /dev/null; then + missingCommands+=("$command") + fi + done + + if (( ${#missingCommands[@]} > 0 )); then + echo "Error: Missing required commands:" + printf ' %s\n' "${missingCommands[@]}" + echo + echo "On Arch Linux, install the required packages with:" + echo " sudo pacman -S qemu-system-x86 qemu-img qemu-ui-gtk qemu-audio-pa coreutils findutils" + exit 1 + fi +} + # Parse command line arguments bootInstalled=false while getopts "ih" opt; do @@ -44,6 +64,8 @@ while getopts "ih" opt; do esac done +checkDependencies + # Get the directory where this script is located scriptDir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" outDir="${scriptDir}/out"