mirror of
https://github.com/ivuorinen/dotfiles.git
synced 2026-01-30 20:46:48 +00:00
41 lines
897 B
Bash
Executable File
41 lines
897 B
Bash
Executable File
#!/usr/bin/env bash
|
|
#
|
|
# Add a directory to the beginning of the PATH if it's not already there.
|
|
# Usage: x-path-append <dir>
|
|
|
|
# Set verbosity with VERBOSE=1
|
|
VERBOSE="${VERBOSE:-0}"
|
|
|
|
# Function to print messages if VERBOSE is enabled
|
|
# $1 - message (string)
|
|
msg()
|
|
{
|
|
[[ "$VERBOSE" -eq 1 ]] && echo "$1"
|
|
}
|
|
|
|
if [ "$#" -ne 1 ]; then
|
|
echo "Usage: $0 <dir>"
|
|
exit 1
|
|
fi
|
|
|
|
dir="$1"
|
|
|
|
if echo "$PATH" | grep -qE "(^|:)$dir($|:)"; then
|
|
export PATH=$(echo -n "$PATH" | awk -v RS=: -v ORS=: "\$0 != \"$dir\"" | sed 's/:$//')
|
|
msg "Directory $dir has been removed from PATH"
|
|
else
|
|
msg "Directory $dir is not in PATH"
|
|
fi
|
|
|
|
if [ ! -d "$dir" ]; then
|
|
msg "(?) Directory $dir does not exist"
|
|
exit 0
|
|
fi
|
|
|
|
if echo "$PATH" | grep -qE "(^|:)$dir($|:)"; then
|
|
msg "(!) Directory $dir is already in PATH"
|
|
else
|
|
export PATH="${PATH:+"$PATH:"}$dir"
|
|
msg "(!) Directory $dir has been added to the end of PATH"
|
|
fi
|