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)