github.com/prysmaticlabs/prysm@v1.4.4/scripts/check-todo.sh (about) 1 #!/bin/bash 2 3 # Continuous integration script to check that TODOs are in the correct format 4 OUTPUT="$(grep -PrinH '(?<!context\.)todo(?!\(#{0,1}\d+\))' --include ./**/*.go --exclude ./*site_data.go --exclude ./*mainnet_config.go)"; 5 if [ "$OUTPUT" != "" ] ; 6 then 7 echo "Invalid TODOs found. Failing." >&2; 8 echo "$OUTPUT" >&2; 9 exit 1; 10 fi 11 12 while read -r line ; do 13 linenum=$(expr "$line" : '^\([0-9]*:\)') 14 issueNum=${line//$linenum} 15 issueState=$(curl https://api.github.com/repos/prysmaticlabs/prysm/issues/"$issueNum" | grep -o '"state":"closed"'); 16 17 if [ "$issueState" != "" ]; 18 then 19 echo "Issue referenced has already been closed" >&2; 20 echo "Issue Number: $issueNum" >&2; 21 exit 1; 22 fi 23 done < <(grep -PrinH -o -h '(?<!context\.)todo\(#{0,1}\K(\d+)' --include ./*.go)