mirror of https://github.com/mongodb/mongo
40 lines
1014 B
Bash
Executable File
40 lines
1014 B
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
# Collect all passed arguments
|
|
ARGS=("$@")
|
|
|
|
# Ordered list of possible clangd locations
|
|
CANDIDATES=(
|
|
"$(command -v custom-clangd)"
|
|
"$(find .compiledb/compiledb-*/external/mongo_toolchain_v5/v5/bin/clangd)"
|
|
"$(find bazel-*/external/mongo_toolchain_v5/v5/bin/clangd)"
|
|
"/opt/mongodbtoolchain/v5/bin/clangd"
|
|
)
|
|
|
|
# Find the first available clangd
|
|
for CANDIDATE in "${CANDIDATES[@]}"; do
|
|
if [[ -x "$CANDIDATE" ]]; then
|
|
CLANGD="$CANDIDATE"
|
|
echo "[INFO] Using clangd at: $CLANGD" >&2
|
|
break
|
|
fi
|
|
done
|
|
|
|
# Fail if no clangd was found
|
|
if [[ -z "$CLANGD" ]]; then
|
|
echo "[ERROR] clangd not found in any of the expected locations." >&2
|
|
exit 1
|
|
fi
|
|
|
|
FINAL_ARGS=(
|
|
"${ARGS[@]}"
|
|
"--query-driver=./**/*{clang,gcc,g++}*" # allow any clang or gcc binary in the repo
|
|
"--header-insertion=never"
|
|
)
|
|
|
|
# Log the full command (optional)
|
|
echo "[INFO] Executing: $CLANGD ${FINAL_ARGS[*]}" >&2
|
|
|
|
# Run clangd with the final arguments
|
|
"$CLANGD" "${FINAL_ARGS[@]}"
|