From 24961600116593d7fdf447f19f9ee0ed2fd6c575 Mon Sep 17 00:00:00 2001 From: tv Date: Fri, 31 Oct 2014 13:10:00 +0100 Subject: initial commit --- load-env | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100755 load-env diff --git a/load-env b/load-env new file mode 100755 index 0000000..ed192d0 --- /dev/null +++ b/load-env @@ -0,0 +1,31 @@ +#! /bin/sh +set -euf +main() { + case "$PWD" in + "$HOME/src/"[0-9A-Za-z-]*) + name=$(basename "$PWD") + exe=$(findexe "$name" | highest_version) + if test -z "$exe"; then + echo2 "load-env-$name: no such executable" + else + echo2 "run $exe" + exec "$exe" "$@" + fi + ;; + "$HOME/src/"*) echo2 "bad basename: $(basename "$PWD")";; + *) echo2 "load-env only knows about stuff below ~/src";; + esac + exit 23 +} +echo2() { echo "$*" >&2; } +findexe() { + ( IFS=: + find $PATH \ + -regextype posix-extended \ + -regex ".*/load-env-$1(-[0-9.]+)?$" \ + 2>/dev/null ) +} +highest_version() { + sort -V | tail -n 1 +} +main "$@" -- cgit v1.2.3