Files
dot_files/update_compile_commands

27 lines
684 B
Bash
Executable File

#!/bin/bash
BASE_PATH="/home/anaber/prj/trenton"
DB_NAME="compile_commands.json"
function do_update {
DB_SRC="$1"
ln -sf "${DB_SRC}" "${BASE_PATH}"/"${DB_NAME}"
}
# Get a list of valid compile command databases in the repo
mapfile -t DB_LIST < <( find "${BASE_PATH}" -mindepth 2 -type f -name "${DB_NAME}" )
idx=0
for DB_ELEM in ${DB_LIST[@]}; do
echo "${idx}: ${DB_ELEM}"
idx=$((idx+1))
done
# Parse and validate the user selection
read -p "Select an option to update: " SELECTION
NUM_ELEM=${#DB_LIST[@]}
MAX_ELEM=$((NUM_ELEM-1))
case "${SELECTION}" in
''|*[!0-${MAX_ELEM}]*) echo "Operation cancelled" ;;
*) do_update "${DB_LIST[${SELECTION}]}" ;;
esac