From 8c218457e8ccc55175934a3bfabb364fae319884 Mon Sep 17 00:00:00 2001 From: Connor Olding Date: Mon, 29 Aug 2022 22:06:15 -0700 Subject: [PATCH] add an esoteric function to rotate PATHs --- home/shrc | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/home/shrc b/home/shrc index 1a5d6ee..adafcd2 100644 --- a/home/shrc +++ b/home/shrc @@ -36,6 +36,19 @@ ADDPATH() { ### @- append a directory to `$PATH` if it isn't already present. esac } +ROPATH() { + [ $# -eq 0 ] || { printf '%s: expected exactly %s arguments, got %s\n' ROPATH 0 $# >&2; return 2; } + local segment= previous= newpath= oldpath="$PATH:" + while segment="${oldpath%%:*}"; [ "$segment" != "$oldpath" ]; do + [ -z "$segment" ] || [ -z "$previous" ] || newpath="$newpath$previous:" + [ -z "$segment" ] || previous="$segment" + oldpath="${oldpath#*:}" + done + [ -z "$previous" ] || printf 'rotated %s\n' "$previous" >&2 + [ -z "$previous" ] || newpath="$previous:$newpath" + export PATH="${newpath%:}" +} + # {{{1 configurations umask 022 # umask should be reset else pip might make faulty installations.