#!/bin/bash # Directory containing YAML files MATCH_DIR="match" # Check if directory exists if [ ! -d "$MATCH_DIR" ]; then echo "Error: Directory '$MATCH_DIR' not found!" exit 1 fi # Temporary file to store all triggers ALL_TRIGGERS=$(mktemp) # Find all YAML files and extract triggers echo "Scanning YAML files in $MATCH_DIR directory..." for file in "$MATCH_DIR"/*.y*ml; do if [ -f "$file" ]; then echo "Processing file: $(basename "$file")" # Extract triggers using grep and sed # This looks for lines with "trigger:" and captures the value grep -E '^\s*-\s*trigger:' "$file" | sed 's/.*trigger:\s*"\([^"]*\)".*/\1/' >> "$ALL_TRIGGERS" fi done # Check if we found any triggers if [ ! -s "$ALL_TRIGGERS" ]; then echo "No triggers found in YAML files. Check file format or directory." rm "$ALL_TRIGGERS" exit 1 fi # Sort triggers and find duplicates echo -e "\nChecking for duplicate triggers..." DUPLICATES=$(sort "$ALL_TRIGGERS" | uniq -d) # Display results if [ -z "$DUPLICATES" ]; then echo "Success: All triggers are unique!" TOTAL=$(wc -l < "$ALL_TRIGGERS") echo "Total number of triggers found: $TOTAL" else echo "Error: Duplicate triggers found:" echo "$DUPLICATES" # Optional: Show which files contain each duplicate echo -e "\nDuplicates found in these files:" for dupe in $DUPLICATES; do echo "Trigger \"$dupe\" found in:" grep -l "trigger: \"$dupe\"" "$MATCH_DIR"/*.y*ml done exit 1 fi # Clean up rm "$ALL_TRIGGERS" ### Now we test that all gifs.yml replace values match "c.tenor.com". # Temporary file to store all replace values REPLACE_VALUES=$(mktemp) # Read gifs.yml file and extract replace values echo "Scanning gifs.yml for replace values..." if [ -f "$MATCH_DIR/gifs.yml" ]; then # We match lines like: ` replace: "https://c.tenor.com/some-value/tenor.gif"` grep -E '^\s*replace:' "$MATCH_DIR/gifs.yml" | sed 's/.*replace:\s*"\([^"]*\)".*/\1/' >> "$REPLACE_VALUES" else echo "Error: gifs.yml file not found in $MATCH_DIR directory!" rm "$REPLACE_VALUES" exit 1 fi # Check if we found any replace values if [ ! -s "$REPLACE_VALUES" ]; then echo "No replace values found in gifs.yml. Check file format." rm "$REPLACE_VALUES" exit 1 fi # Check if all replace values start with "https://c.tenor.com/" echo -e "\nChecking replace values in gifs.yml..." INVALID_REPLACE=$(grep -v '^https://c\.tenor\.com/' "$REPLACE_VALUES") if [ -z "$INVALID_REPLACE" ]; then echo "Success: All replace values in gifs.yml are valid!" else echo "Error: Invalid replace values found in gifs.yml:" echo "$INVALID_REPLACE" fi # This must always be the final line, so that CI can detect success. If you want to exit with a failure, do so at the conditional point. exit 0