#!/bin/sh CURRENT_DIR=$(pwd) GLOBAL_WORKING_DIR=$(realpath ${CURRENT_DIR}/..) # ---------- has_force_arg=0 if [ $# -eq 1 ] ; then if [ $1 == 'force' ] ; then has_force_arg=1 fi fi # make sure the current directory is correct if [ ! -d ${CURRENT_DIR}/.templates ] ; then echo "this script should be called by make: make clangd (one level up)" exit 1 fi # change / to \/ in paths CURRENT_DIR_FOR_SED=$(echo ${CURRENT_DIR} | sed 's/\//\\\//g') GLOBAL_WORKING_DIR_FOR_SED=$(echo ${GLOBAL_WORKING_DIR} | sed 's/\//\\\//g') if [ -f "${CURRENT_DIR}/.templates/.clangd" ] ; then if [ $has_force_arg -eq 1 -o ! -f "${CURRENT_DIR}/.clangd" ] ; then cat "${CURRENT_DIR}/.templates/.clangd" | \ sed -e "s/%%%CURRENT_DIR%%%/${CURRENT_DIR_FOR_SED}/g" \ -e "s/%%%GLOBAL_WORKING_DIR%%%/${GLOBAL_WORKING_DIR_FOR_SED}/g" > \ ${CURRENT_DIR}/.clangd echo "added a ${CURRENT_DIR}/.clangd file" fi fi