golib/concat-for-context.sh

38 lines
754 B
Bash

#!/bin/sh
set -e
rm -f all.*
find . -type f \( -name '*.go' -o -name '*.sql' \) -print | sort | while IFS= read -r file; do
# Skip files named all.* (case sensitive)
case "$(basename "$file")" in
all.*) continue ;;
esac
# Choose comment style based on file extension
case "$file" in
*.go)
{
printf '\n// %s\n\n' "$file"
cat "$file"
printf '\n'
} >> all.go
;;
*.sql)
{
printf '\n-- %s\n\n' "$file"
cat "$file"
printf '\n'
} >> all.sql
;;
*)
{
printf '\n# %s\n\n' "$file"
cat "$file"
printf '\n'
} >> all.md
;;
esac
done