view .shell.d/00.path_manipulation.sh @ 351:bef29d49d19f

safe-paste: adds support for bracketed paste mode to zsh Since I don't use oh-my-zsh, just import their code directly with a reference. Based on the site where I learned about this [0], it's originally from [1], and I downloaded it from [2]. 0: https://cirw.in/blog/bracketed-paste 1: http://www.zsh.org/mla/users/2011/msg00367.html 2: https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/plugins/safe-paste/safe-paste.plugin.zsh
author Augie Fackler <raf@durin42.com>
date Mon, 10 Nov 2014 09:26:04 -0500
parents 7dfb7799567f
children c85072e620a8
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 echo "$varcontents" | grep "$newcomp:" >> /dev/null; then
    true
  elif [[ "$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
  else
    echo $1 not in $varname
  fi
}