51 lines
1.3 KiB
Bash
Executable file
51 lines
1.3 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
|
|
set -euo pipefail
|
|
|
|
cd "$(dirname "${0}")/.."
|
|
|
|
checkout_repo() {
|
|
local -r path="${1}"
|
|
local -r repo="${2}"
|
|
local -r sha="${3}"
|
|
|
|
echo "Checking out github.com/${repo}#${sha} in ${path}"
|
|
|
|
mkdir -p "${path}"
|
|
pushd "${path}" >/dev/null
|
|
|
|
if [[ ! -d ".git" ]]; then
|
|
git init --quiet
|
|
git remote add origin "https://github.com/${repo}.git"
|
|
git fetch --quiet --depth 1 origin "${sha}"
|
|
elif [[ "${sha}" != "$(git rev-parse HEAD)" ]]; then
|
|
git fetch --quiet --depth 1 origin "${sha}"
|
|
fi
|
|
|
|
git checkout --quiet FETCH_HEAD
|
|
|
|
popd >/dev/null
|
|
|
|
echo
|
|
}
|
|
|
|
checkout_repo "./examples/luvit" "luvit/luvit" "9841bc17aaab32fa63e11063cf68f82da615eefd"
|
|
|
|
parse_examples() {
|
|
local -r known_failures="$(cat script/known_failures.txt)"
|
|
|
|
tree-sitter parse --quiet \
|
|
"./examples/luvit/**/*.lua" \
|
|
$(for file in ${known_failures}; do echo "!${file}"; done)
|
|
|
|
declare -r example_count=$(find ./examples -name "*.lua" | wc -l)
|
|
declare -r failure_count=$(wc -w <<< "${known_failures}")
|
|
declare -r success_count=$(( ${example_count} - ${failure_count} ))
|
|
declare -r success_percent=$(bc -l <<< "100*${success_count}/${example_count}")
|
|
|
|
printf \
|
|
"[Lua] Successfully parsed %d of %d example files (%.1f%%)\n" \
|
|
${success_count} ${example_count} ${success_percent}
|
|
}
|
|
|
|
parse_examples
|