26 lines
1.0 KiB
Bash
Executable File
26 lines
1.0 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Old, needs updating after move from wiki/
|
|
# Run the commands in pages' examples and see if they succeed.
|
|
# Usage:
|
|
# 1. extract a page's example files to a subdirectory named like the page (without the .md)
|
|
# 2. run this script with zero or more page arguments (with or without the .md).
|
|
# Eg: ./test # runs all tests found
|
|
# Note current limitations:
|
|
# - all and only lines in pages beginning with "$ " are considered commands
|
|
# - only extracted files are tested, not what's actually in the pages
|
|
# - only commands' exit status is tested, not their output
|
|
|
|
echo "Testing exit status (not output) and extracted files (not page content)"
|
|
PAGES="${*:-*.md}"
|
|
for PAGE in $PAGES; do
|
|
DIR=$(basename "$PAGE" .md)
|
|
PAGE=$DIR.md
|
|
echo "$PAGE:"
|
|
cd "$DIR" 2>/dev/null || continue && \
|
|
grep '^\$' ../"$PAGE" | cut -c3- | \
|
|
while IFS= read -r c; do
|
|
printf " %-50s \t" "$c"
|
|
$c >/dev/null 2>&1 && printf "\e[32m[command succeeded]\e[0m\n" || printf "\e[31m[command ERRORED]\e[0m\n"
|
|
done
|
|
done
|