mirror of https://github.com/Wilfred/difftastic/
80 lines
3.1 KiB
Bash
80 lines
3.1 KiB
Bash
#!/bin/bash
|
|
|
|
cd "$(dirname "$0")/.."
|
|
|
|
function checkout_at() {
|
|
repo=$1; url=$2; sha=$3
|
|
if [ ! -d "$repo" ]; then
|
|
git clone "https://github.com/$url" "$repo"
|
|
fi
|
|
|
|
pushd "$repo"
|
|
git fetch && git reset --hard "$sha"
|
|
popd
|
|
}
|
|
|
|
# Define list of arguments expected in the input
|
|
optstring="s"
|
|
|
|
while getopts ${optstring} arg; do
|
|
case ${arg} in
|
|
s)
|
|
SKIP_DOWNLOAD='true'
|
|
echo "Skip download"
|
|
;;
|
|
?)
|
|
echo "Invalid option: -${OPTARG}."
|
|
;;
|
|
esac
|
|
done
|
|
|
|
if [[ $SKIP_DOWNLOAD != 'true' ]]; then
|
|
checkout_at "examples/elm-spa-example" "rtfeldman/elm-spa-example" "c8c3201ec0488f17c1245e1fd2293ba5bc0748d5"
|
|
checkout_at "examples/elm-browser" "elm/browser" "1d28cd625b3ce07be6dfad51660bea6de2c905f2"
|
|
checkout_at "examples/elm-bytes" "elm/bytes" "2bce2aeda4ef18c3dcccd84084647d22a7af36a6"
|
|
checkout_at "examples/elm-core" "elm/core" "65cea00afa0de03d7dda0487d964a305fc3d58e3"
|
|
checkout_at "examples/elm-file" "elm/file" "e4ca3864c93a5e766e24ed6916174753567b2f59"
|
|
checkout_at "examples/elm-html" "elm/html" "94c079007f8a7ed282d5b53f4a49101dd0b6cf99"
|
|
checkout_at "examples/elm-http" "elm/http" "81b6fdc67d8e5fb25644fd79e6b0edbe2e14e474"
|
|
checkout_at "examples/elm-json" "elm/json" "0206c00884af953f2cba8823fee111ee71a0330e"
|
|
checkout_at "examples/elm-parser" "elm/parser" "7506b07eaa93a93d13b508b948c016105b0953c8"
|
|
checkout_at "examples/elm-project-metadata-utils" "elm/project-metadata-utils" "831733724fb2b59b38ba1639e6503d97607dbd9d"
|
|
checkout_at "examples/elm-random" "elm/random" "ecf97bb43f0d5cd75243428f69f45323957bda25"
|
|
checkout_at "examples/elm-regex" "elm/regex" "8810c41fb17ddf89165665489be213f44070bc4a"
|
|
checkout_at "examples/elm-svg" "elm/svg" "08bd432990862bab5b840654dd437fbb2e6176e7"
|
|
checkout_at "examples/elm-time" "elm/time" "dc3b75b7366e59b99962706f7bf064d3634a4bba"
|
|
checkout_at "examples/elm-url" "elm/url" "4e5ee032515581bf01428d54ee636dd601f4bc90"
|
|
checkout_at "examples/elm-virtual-dom" "elm/virtual-dom" "44cbe2bf3d598cab569045cefcc10de31907598d"
|
|
checkout_at "examples/elm-ui" "mdgriffith/elm-ui" "acae8857a02e600cc4b4737ca2f70607228b4489"
|
|
checkout_at "examples/elm-markup" "mdgriffith/elm-markup" "b073d85490f71c6491648bcd0b11bf9aca6e53a5"
|
|
checkout_at "examples/elm-visualization" "gampleman/elm-visualization" "6b9c7476507cedbbd8fc841fdecb59f4af2c3f96"
|
|
fi
|
|
|
|
skipped_files=()
|
|
examples_to_parse=()
|
|
all_examples=$(find examples -name '*.elm')
|
|
known_failures=$(cat script/known-failures.txt)
|
|
for example in $all_examples; do
|
|
if [[ ! $known_failures == *$example* ]]; then
|
|
examples_to_parse+=($example)
|
|
else
|
|
skipped_files+=($example)
|
|
fi
|
|
done
|
|
|
|
start=`date +%s.%N`
|
|
tree_sitter_report=$(echo ${examples_to_parse[@]} | xargs -n 100000 npx tree-sitter parse --quiet --stat)
|
|
end=`date +%s.%N`
|
|
|
|
ret_code=$?
|
|
|
|
echo -e "-----------------------------------------------------------------\n$tree_sitter_report \n -----------------------------------------------------------------\n"
|
|
|
|
skipped=$( echo ${#skipped_files[@]} )
|
|
# This doesn't work on macos due to how date is used and will default to empty
|
|
runtime=$( echo "$end - $start" | bc -l )
|
|
|
|
printf "Skipped: %d \nTook: %s\n" $skipped $runtime
|
|
|
|
exit $ret_code
|