artichoke-lang/add-notice.sh
erick-alcachofa b99f3586dc
chore(license): Added NOTICE header to all source files
Signed-off-by: erick-alcachofa <erick@artichoke.dev>
2025-12-25 13:12:41 -06:00

28 lines
899 B
Bash
Executable File

#!/bin/bash
# Path to your notice file
NOTICE_FILE="./NOTICE"
# Check if notice file exists
if [ ! -f "$NOTICE_FILE" ]; then
echo "Error: $NOTICE_FILE not found!"
exit 1
fi
# Find all .cpp, .hpp, .h, and .cc files
# Excluding the .git directory
find . -type d -name ".git" -prune -o -type d -name "build" -prune -o -type f \( -name "*.cpp" -o -name "*.hpp" -o -name "*.h" -o -name "*.cc" \) -print | while read -r file; do
# Check if the file already contains a specific keyword from your notice
# to avoid double-prepending (e.g., "Copyright")
if grep -q "Copyright" "$file"; then
echo "Skipping $file (License already exists)"
else
echo "Adding notice to $file"
# Create a temp file: notice + newline + original content
{ cat "$NOTICE_FILE"; echo ""; cat "$file"; } > "$file.tmp" && mv "$file.tmp" "$file"
fi
done
echo "Done!"