mirror of https://github.com/Wilfred/difftastic/
36 lines
1.3 KiB
Bash
36 lines
1.3 KiB
Bash
#!/bin/bash
|
|
|
|
set -e
|
|
|
|
known_failures="$parser_dir/script-data/known_failures.txt"
|
|
top_repositories="$parser_dir/script-data/top-repositories.txt"
|
|
|
|
# Run all this logic in a temporary directory that we delete on exit
|
|
tmpdir="$(mktemp -d -t top-10-XXXXXX)"
|
|
trap 'rm -rf "$tmpdir"' EXIT
|
|
|
|
# Function to check out a git repository at a given tag.
|
|
#
|
|
# We use tags so that the source code is deterministic - tags are immutable and reasonable people
|
|
# don't delete and recreate them. The tree-sitter-python script this is based on uses raw SHA hashes
|
|
# for this, but that would require us to checkout the code at HEAD first and switch to the code at
|
|
# the given hash. Using tags means we can do this in one command and include `--depth 1` to reduce
|
|
# the number of extra objects we have to fetch.
|
|
function checkout() {
|
|
repo=$1; url=$2; tag=$3
|
|
|
|
if [ ! -d "$repo" ]; then
|
|
git clone --quiet --branch $tag --depth 1 "https://github.com/$url" "$repo" >/dev/null 2>/dev/null
|
|
fi
|
|
}
|
|
|
|
|
|
# Locates all the swift source code files that exist in the source tree under the passed-in
|
|
# directory.
|
|
#
|
|
# Does not include code that gets included from dependencies of this repository, to avoid
|
|
# overcounting those files.
|
|
function swift_files_under() {
|
|
find "$1" -name *.swift -not -path '*/Pods/*'
|
|
}
|