summaryrefslogtreecommitdiff
path: root/.local
diff options
context:
space:
mode:
authorLuke Shumaker <shumakl@purdue.edu>2015-02-09 22:17:02 -0500
committerLuke Shumaker <lukeshu@sbcglobal.net>2015-02-09 22:41:20 -0500
commitca3e04971996ebe2eebf88775e96bbf547aa0abe (patch)
tree636fef610ca90f2f9858af3ab455b2453add3753 /.local
parenta6fe4bac238a28521aa1a4fec3f5c690eab9eae3 (diff)
path.sh, config-path: don't rely on external programs (sed)
Diffstat (limited to '.local')
-rwxr-xr-x.local/bin/config-path16
1 files changed, 7 insertions, 9 deletions
diff --git a/.local/bin/config-path b/.local/bin/config-path
index 7cd1fcd..1d4d4d1 100755
--- a/.local/bin/config-path
+++ b/.local/bin/config-path
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/usr/bin/env bash
# All the prefixes to consider
prefixes=(
@@ -61,14 +61,12 @@ main() {
done
# Finally, print the values
- # The `sed` bit here is the only time we call an external program
- {
- var_done PATH
- var_done MANPATH
- var_done LD_LIBRARY_PATH
- var_done RUBYLIB
- var_done PERL5LIB
- } | sed 's/^declare \(-\S* \)*//'
+ lines=()
+ for var in PATH MANPATH LD_LIBRARY_PATH RUBYLIB PERL5LIB; do
+ lines+=("$(var_done "$var")")
+ done
+ shopt -s extglob
+ printf -- '%s\n' "${lines[@]##declare *(-+([[:graph:]]) )}"
}
main "$@"