#!/usr/bin/env bash

# TODO: Move away from hacky bash scripts.

# Fetch latest grammar for a given language, generate and "install" the corresponding shared lib
# at ~/.tree-sitter/bin/<name>.so
#
# Usage:
# ensure-lang <name>
#
# Examples:
# ensure-lang rust
# ensure-lang python

set -euo pipefail

here=$(cd "$(dirname "$BASH_SOURCE")"; pwd)
source "$here/env.bash"

LANG=$1

(
    cd "$PROJECT_ROOT"

    $EMACS --batch \
           --directory "$PROJECT_ROOT/core" \
           --directory "$PROJECT_ROOT/lisp" \
           --directory "$PROJECT_ROOT/langs" \
           --eval "(progn (require 'tree-sitter-langs) (tree-sitter-langs-ensure '$LANG))"
)
