1
1
mirror of https://github.com/github/semantic.git synced 2024-12-21 13:51:44 +03:00
semantic/script/clone-example-repos
2019-09-17 13:33:16 -04:00

74 lines
3.5 KiB
Bash
Executable File

#!/bin/bash
#/ Usage: script/clone-example-repos
#/
#/ Clone some example repositories for smoke testing parsing and assignment
#/
#/ NOTES:
#/ - This script is intended to be called by `test/Examples.hs`
#/ - Go and Ruby examples are in submodules
#/ - PHP doesn't have any parse-examples
#/ - Java and Haskell have good examples, but they have assignment failures so currently aren't tested
set -e
cd $(dirname "$0")/..
mkdir -p test/examplerepos || true
git clone --single-branch --recurse-submodules https://github.com/tree-sitter/haskell-tree-sitter.git tmp/haskell-tree-sitter || true
dir="tmp/haskell-tree-sitter"
# clone_repo LOCAL_PATH URL SHA
function clone_repo {
path=$1
url="https://github.com/$2"
sha=$3
if [ ! -d "$path" ]; then
echo "Cloning $url@$sha"
git clone "$url" "$path"
else
echo "$url@$sha already exists"
fi
pushd "$path" > /dev/null # && git pull -q # NB: Enable this if you need to pin to a different sha for one of the repos.
git reset --hard -q $sha
popd > /dev/null
}
python_examples="$dir/tree-sitter-python/vendor/tree-sitter-python/examples"
clone_repo "$python_examples/numpy" numpy/numpy 058851c5cfc98f50f11237b1c13d77cfd1f40475
clone_repo "$python_examples/thealgorithms" thealgorithms/python c6be53e1c43f870f5364eef1499ee1b411c966fb
clone_repo "$python_examples/flask" pallets/flask 0b5b4a66ef99c8b91569dd9b9b34911834689d3f
clone_repo "$python_examples/httpie" jakubroztocil/httpie 358342d1c915d6462a080a77aefbb20166d0bd5d
clone_repo "$python_examples/keras" keras-team/keras e59570ae26670f788d6c649191031e4a8824f955
clone_repo "$python_examples/requests" requests/requests 64bde6582d9b49e9345d9b8df16aaa26dc372d13
clone_repo "$python_examples/scikit-learn" scikit-learn/scikit-learn d0f63a760d9993a7f68cfc5e1a075700d67c53d3
clone_repo "$python_examples/scrapy" scrapy/scrapy 65d631329a1434ec013f24341e4b8520241aec70
clone_repo "$python_examples/pytorch" pytorch/pytorch c865d46736db4afff51690a712e35ed8e3899490
clone_repo "$python_examples/certbot" certbot/certbot bb8222200a8cbd39a3ce9584ce6dfed6c5d05228
ts_examples="$dir/tree-sitter-typescript/vendor/tree-sitter-typescript/examples"
clone_repo "$ts_examples/desktop" desktop/desktop d1324f56d02dd9afca5d2e9da545905a7d41d671
clone_repo "$ts_examples/npm" npm/npm ee147fbbca6f2707d3b16f4fa78f4c4606b2d9b1
# Java examples are disabled because the assignment code is not yet
# robust and for reasons of CI celerity.
java_examples="$dir/tree-sitter-java/vendor/tree-sitter-java/examples"
# clone_repo "$java_examples/elasticsearch" elastic/elasticsearch 4d62640bf116af7e825d89c7319a39c3f2f325b4
# clone_repo "$java_examples/guava" google/guava e24fddc5fff7fd36d33ea38737b6606a7e476845
# clone_repo "$java_examples/RxJava" ReactiveX/RxJava 8a6bf14fc9a61f7c1c0016ca217be02ca86211d2
haskell_examples="$dir/tree-sitter-haskell/vendor/tree-sitter-haskell/examples"
# clone_repo "$haskell_examples/effects" joshvera/effects 08f5f36f2600362685af593f4b327e933b60bf97
# clone_repo "$haskell_examples/postgrest" PostgRest/postgrest f80cfbf165f951a062b3cbedac4556019905ca49
# clone_repo "$haskell_examples/ivory" GaloisInc/ivory 3d00324ad1c113c7e70957ff6a6d636d271d0fc4
go_examples="$dir/tree-sitter-go/vendor/tree-sitter-go/examples"
clone_repo "$go_examples/go" "golang/go" "870e12d7bfaea70fb0d743842f5864eb059cb939"
clone_repo "$go_examples/moby" "moby/moby" "f57f260b49b6142366e6bc1274204ee0a1205945"
ruby_examples="$dir/tree-sitter-ruby/vendor/tree-sitter-ruby/examples"
clone_repo "$ruby_examples/ruby_spec" "ruby/spec" "c3e6b9017926f44a76e2b966c4dd35fa84c4cd3b"