difftastic/vendored_parsers/tree-sitter-julia/script/parse-examples

47 lines
1.1 KiB
Bash

#!/bin/bash
set -e
function fixture() {
url=$1
sha=$2
name=$(basename $url)
path=examples/$name
echo $name $path
if [ ! -d $path ]; then
git clone --depth=1 $url $path
fi
(
cd $path
git fetch origin $sha
git reset --hard $sha
)
}
fixture https://github.com/FluxML/Flux.jl f3c9ab71bc4ec19bc95f0cd67ac63616254b65a3
fixture https://github.com/pluskid/Mocha.jl 5e15b882d7dd615b0c5159bb6fde2cc040b2d8ee
fixture https://github.com/JuliaLang/IJulia.jl ad459e8d46a908c6b923cafa79572a610e2869bb
fixture https://github.com/GiovineItalia/Gadfly.jl f759d9c76b2a983eff314e307825cbcc7e2e5055
all_examples=$(find "examples" -type f -name '*.jl')
known_failures=$(cat script/known-failures.txt)
examples_to_parse=$(
for example in $all_examples; do
if [[ ! $known_failures == *$example* ]]; then
echo $example
fi
done
)
echo $examples_to_parse | xargs -n 5000 tree-sitter parse -q -t
skipped=$( echo $known_failures | wc -w )
parsed=$( echo $examples_to_parse | wc -w )
total=$(( parsed + skipped ))
percent=$( bc -l <<< "100*$parsed/$total" )
printf "Successfully parsed %d of %d files (%.2f%%)\n" $parsed $total $percent