-
-
Save adriancmiranda/6da081770ddf380b5ff643a5726b1b01 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# Useful bash functions. This is sourced by the environment file. | |
# These are available to scripts, but you shouldn't use them in scripts if you | |
# want them to be portable. | |
# Usage: pathremove /path/to/bin [PATH] | |
# Eg, to remove ~/bin from $PATH | |
# pathremove ~/bin PATH | |
function pathremove { | |
local IFS=':' | |
local NEWPATH | |
local DIR | |
local PATHVARIABLE=${2:-PATH} | |
for DIR in ${!PATHVARIABLE} ; do | |
if [ "${DIR}" != "${1}" ] ; then | |
NEWPATH="${NEWPATH:+${NEWPATH}:}${DIR}" | |
fi | |
done | |
export ${PATHVARIABLE}="${NEWPATH}" | |
} | |
# Usage: pathprepend /path/to/bin [PATH] | |
# Eg, to prepend ~/bin to $PATH | |
# pathprepend ~/bin PATH | |
function pathprepend { | |
pathremove "${1}" "${2}" | |
[ -d "${1}" ] || return | |
local PATHVARIABLE="${2:-PATH}" | |
export ${PATHVARIABLE}="${1}${!PATHVARIABLE:+:${!PATHVARIABLE}}" | |
} | |
# Usage: pathappend /path/to/bin [PATH] | |
# Eg, to append ~/bin to $PATH | |
# pathappend ~/bin PATH | |
function pathappend { | |
pathremove "${1}" "${2}" | |
[ -d "${1}" ] || return | |
local PATHVARIABLE=${2:-PATH} | |
export $PATHVARIABLE="${!PATHVARIABLE:+${!PATHVARIABLE}:}${1}" | |
} | |
# Usage: ssource /path/to/shellscript | |
# Checks if the file exists before sourcing it | |
function ssource { | |
[ -r "${1}" ] && source "${1}" | |
} | |
# Usage: mcd somedir | |
# Creates the directory if it doesn't exist, and changes into it | |
function mcd { | |
mkdir -p "${1}" && | |
cd "${1}" | |
} | |
# Include any local functions from a standard local path. | |
ssource "${HOME}/.local/env/functions-local" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment