#!/usr/bin/env bash # # Add a directory to the beginning of the PATH if it's not already there. # Usage: x-path-append # 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 " 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