diff options
author | Luke Shumaker <shumakl@purdue.edu> | 2015-02-09 22:17:02 -0500 |
---|---|---|
committer | Luke Shumaker <lukeshu@sbcglobal.net> | 2015-02-09 22:41:20 -0500 |
commit | ca3e04971996ebe2eebf88775e96bbf547aa0abe (patch) | |
tree | 636fef610ca90f2f9858af3ab455b2453add3753 /.local/bin | |
parent | a6fe4bac238a28521aa1a4fec3f5c690eab9eae3 (diff) |
path.sh, config-path: don't rely on external programs (sed)
Diffstat (limited to '.local/bin')
-rwxr-xr-x | .local/bin/config-path | 16 |
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 "$@" |