Files
spectre-meltdown-checker/build.sh
2026-03-30 20:04:16 +02:00

50 lines
1.2 KiB
Bash
Executable File

#!/bin/sh
# vim: set ts=4 sw=4 sts=4 et:
# Assemble spectre-meltdown-checker.sh from src/ fragments.
# Usage: ./build.sh [output_file]
# default output: spectre-meltdown-checker.sh
set -e
SRCDIR="$(dirname "$0")/src"
OUTPUT="${1:-$(dirname "$0")/spectre-meltdown-checker.sh}"
SECTIONS="
libs/*.sh
vulns-helpers/*.sh
vulns/*.sh
main.sh
db/*.sh
"
first=1
for pattern in $SECTIONS; do
# shellcheck disable=SC2086
for file in "$SRCDIR"/$pattern; do
[ -f "$file" ] || continue
# source file marker
relpath="${file#"$SRCDIR"/}"
if [ "$first" = 1 ]; then
# first file (001_core_header.sh): emit verbatim, keeps shebang
cat "$file"
first=0
else
# separator blank line + source marker between fragments
echo ""
echo "# >>>>>> $relpath <<<<<<"
echo ""
# strip accidental shebang on line 1
{
IFS= read -r line
case "$line" in
'#!'*) ;; # skip shebang
*) printf '%s\n' "$line" ;;
esac
cat
} <"$file"
fi
done
done >"$OUTPUT"
chmod +x "$OUTPUT"
echo "Assembled $OUTPUT ($(wc -l <"$OUTPUT") lines)"