-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsetup.sh
More file actions
executable file
·34 lines (27 loc) · 1.09 KB
/
setup.sh
File metadata and controls
executable file
·34 lines (27 loc) · 1.09 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#!/bin/bash
# Setup script for diffract
# Installs dependencies and builds grammar shared libraries
set -e
cd "$(dirname "$0")"
echo "=== Setting up diffract ==="
# Check for required tools
command -v npm >/dev/null 2>&1 || { echo "npm is required but not installed. Aborting." >&2; exit 1; }
command -v cc >/dev/null 2>&1 || { echo "C compiler (cc) is required but not installed. Aborting." >&2; exit 1; }
# Check for tree-sitter library
if ! pkg-config --exists tree-sitter 2>/dev/null && ! [ -f /usr/include/tree_sitter/api.h ]; then
echo "tree-sitter library not found. Please install it:"
echo " Arch Linux: pacman -S tree-sitter"
echo " Ubuntu/Debian: apt install libtree-sitter-dev"
echo " macOS: brew install tree-sitter"
exit 1
fi
# Install npm dependencies for grammars
echo "Installing tree-sitter grammar packages..."
(cd grammars && npm install)
# Build grammar shared libraries
echo "Building grammar shared libraries..."
./grammars/build-grammars.sh
echo ""
echo "=== Setup complete ==="
echo "Build the project with: dune build"
echo "Run with: dune exec diffract -- <file>"