Skip to content
Snippets Groups Projects
Commit bd0b0e16 authored by Sandipan Mohanty's avatar Sandipan Mohanty
Browse files

Add pathutils and aliases

parent 6d0045d6
No related branches found
No related tags found
No related merge requests found
alias cf="clang-format --style=WebKit -i"
alias C="clang++ -std=c++20 -stdlib=libc++"
alias Cm="clang++ -std=c++20 -stdlib=libc++ -fmodules -fimplicit-module-maps"
alias G="g++ -std=c++20 -pedantic -Wall"
alias Gm="g++ -std=c++20 -fmodules-ts -pedantic -Wall"
alias Gh="g++ -std=c++20 -fmodules-ts -xc++-system-header"
#!/bin/bash
# ***********************************************
# Programming in C++
# 09 -- 13 May 2022
# Jülich Supercomputing Centre
# ***********************************************
rmspecial() {
sed -e 's/[]\/()$*.^|[]/\\&/g' <<< "$1"
}
# Usage:
# prepend_path NAME_OF_PATH_ENV_VAR LOCATION_TO_PREPEND
prepend_path() {
local pathtochange prevpath
pathtochange=$1
prevpath=${!pathtochange}
if [ -d "$2" ]; then
[[ ":${prevpath}:" != *":$2:"* ]] && prevpath="$2:${prevpath}"
fi
eval "export ${pathtochange}=${prevpath}"
}
# Usage:
# remove_path_element NAME_OF_PATH_ENV_VAR LOCATION_TO_REMOVE_FROM_IT
remove_path_element() {
local pathtochange prevpath toremove
pathtochange=$1
prevpath=${!pathtochange}
toremove=$(rmspecial $2)
prevpath=$(eval "echo ${prevpath} | sed -e 's#$toremove:##'")
prevpath=$(eval "echo ${prevpath} | sed -e 's#:$toremove##'")
eval "export ${pathtochange}=${prevpath}"
}
# Usage:
# pathadd /a/b/c/bin
pathadd() {
prepend_path PATH $1
}
# Usage:
# pathrm /a/b/c/bin
pathrm() {
remove_path_element PATH $1
}
libpathadd() {
prepend_path LD_LIBRARY_PATH $1
prepend_path LD_RUN_PATH $1
prepend_path LIBRARY_PATH $1
}
libpathrm() {
remove_path_element LD_LIBRARY_PATH $1
remove_path_element LD_RUN_PATH $1
remove_path_element LIBRARY_PATH $1
}
incpathadd() {
prepend_path CPATH $1
}
incpathrm() {
remove_path_element CPATH $1
}
cmpathadd() {
prepend_path CMAKE_PREFIX_PATH $1
}
cmpathrm() {
remove_path_element CMAKE_PREFIX_PATH $1
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment