Merge pull request #95 from milinddethe15/check-duplicate

Added github action and updated check-dups.sh
This commit is contained in:
Edoardo Ottavianelli 2023-10-14 17:33:23 +02:00 committed by GitHub
commit b464cf2178
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 40 additions and 10 deletions

22
.github/workflows/check-duplicates.yml vendored Normal file
View File

@ -0,0 +1,22 @@
name: Check Duplicates
on:
pull_request:
branches:
- main
push:
branches:
- main
jobs:
check-duplicates:
runs-on: ubuntu-latest
steps:
- name: Check Out Code
uses: actions/checkout@v2
- name: Run Check Duplicates Script
run: |
chmod +x scripts/check-dups.sh
./scripts/check-dups.sh
working-directory: ${{ github.workspace }}

View File

@ -14,15 +14,23 @@ then
readme="../README.md"
fi
links=$(cat $readme | egrep "\- \[" | wc -l)
# Function to extract links from a section and check for duplicates
check_section() {
section=$1
section_content=$(awk -v section="$section" '/^### / {p=0} {if(p)print} /^### '"$section"'/ {p=1}' "$readme")
duplicate_links=$(echo "$section_content" | grep -oP '\[.*?\]\(\K[^)]+' | sort | uniq -d)
if [[ -n $duplicate_links ]]; then
echo "[ ERR ] DUPLICATE LINKS FOUND"
echo "$duplicate_links"
exit 1
fi
}
uniqlinks=$(cat $readme | egrep "\- \[" | uniq | wc -l)
# Get all unique section headings from the README file and handle spaces and slashes
sections=$(grep '^### ' "$readme" | sed 's/^### //' | sed 's/[\/&]/\\&/g')
if [[ $links -eq $uniqlinks ]];
then
echo "[ OK! ] NO DUPLICATES FOUND."
echo "$links links in README."
else
echo "[ ERR ] DUPLICATES FOUND!"
cat $readme | egrep "\- \[" | uniq -c | egrep -iv "1 - ["
fi
# Call the function for each section
for section in $sections; do
check_section "$section"
done
echo "[ OK! ] NO DUPLICATES FOUND."