view .shell.d/00.path_manipulation.sh @ 530:dbb75edda2ff default tip

cleanup: remove ancient distnoted reaper script Surely this bug has been fixed in the 9+ years that the script has been run once a minute by cron on my laptop. To my surprise, it looks like the Migration Assistant even managed to carry it across laptops!
author Augie Fackler <raf@durin42.com>
date Sat, 03 Jan 2026 19:12:16 -0500
parents b0fa9e7cadac
children
line wrap: on
line source

# Functions for manipulating $PATH. Split out so I can use them in .zshenv if I want.

function insert_path_element() {
  insert_element_into_var $1 PATH
}

function remove_path_element() {
  remove_element_from_var $1 PATH
}

function insert_element_into_var () {
  eval varcontents=\$"$2"
  eval varname="$2"
  newcomp="$1"
  if [[ "$varcontents" =~ "${newcomp}:" ]] ; then
    true
  elif [[ -z "$varcontents" ]] ; then
    export $varname="$newcomp"
  else
    export $varname="$newcomp:$varcontents"
  fi
}

function remove_element_from_var() {
  eval varcontents=\$"$2"
  eval varname="$2"
  newcomp="$1"
  if echo "$varcontents" | grep "$newcomp:" >> /dev/null; then
    export $varname="`echo $varcontents | sed s%$newcomp:%%`"
  elif [[ "$varcontents" == "$newcomp" ]] ; then
    unset $varname
  fi
}

function append_path_element() {
    export PATH="${PATH}:$1"
}