aboutsummaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/update-ts-runtime.sh39
-rwxr-xr-xscripts/vim-patch.sh2
2 files changed, 40 insertions, 1 deletions
diff --git a/scripts/update-ts-runtime.sh b/scripts/update-ts-runtime.sh
new file mode 100755
index 0000000000..1a947e0ac9
--- /dev/null
+++ b/scripts/update-ts-runtime.sh
@@ -0,0 +1,39 @@
+#!/bin/sh
+#
+# This script will update the treesitter runtime to the provided commit.
+# Usage :
+# $0 <tree-sitter commit sha>
+set -e
+
+ts_source_dir="/tmp/tree-sitter"
+ts_url="https://github.com/tree-sitter/tree-sitter.git"
+
+base_dir="$(cd "$(dirname $(dirname $0))" && pwd)"
+ts_dest_dir="$base_dir/src/tree_sitter/"
+ts_current_commit="$ts_dest_dir/treesitter_commit_hash.txt"
+
+echo "Updating treesitter runtime from $(cat "$ts_current_commit") to $1..."
+
+if [ ! -d "$ts_source_dir" ]; then
+ echo "Cloning treesitter..."
+ git clone "$ts_url" "$ts_source_dir"
+else
+ echo "Found a non-empty $ts_source_dir directory..."
+ git -C "$ts_source_dir" fetch
+fi
+
+echo "Checking out $1..."
+git -C "$ts_source_dir" checkout $1
+
+echo "Removing old files..."
+find "$ts_dest_dir" -not -name "LICENSE" -not -name "README.md" -not -type d -delete
+
+echo "Copying files..."
+cp -t "$ts_dest_dir" -r "$ts_source_dir/lib/src"/*
+cp -t "$ts_dest_dir" "$ts_source_dir/lib/include/tree_sitter"/*
+
+echo "$1" > "$ts_current_commit"
+
+make
+TEST_FILE="$base_dir/test/functional/lua/treesitter_spec.lua" make test
+
diff --git a/scripts/vim-patch.sh b/scripts/vim-patch.sh
index a8b622d5c4..9c4349abca 100755
--- a/scripts/vim-patch.sh
+++ b/scripts/vim-patch.sh
@@ -7,7 +7,7 @@ set -p
# Ensure that the user has a bash that supports -A
if [[ "${BASH_VERSINFO[0]}" -lt 4 ]]; then
- echo "This script requires bash version 3 or later (you have ${BASH_VERSION})." >&2
+ >&2 echo "error: script requires bash 4+ (you have ${BASH_VERSION})."
exit 1
fi