diff options
Diffstat (limited to '.local/bin')
-rwxr-xr-x | .local/bin/config-path | 61 | ||||
-rwxr-xr-x | .local/bin/pick | 10 | ||||
-rwxr-xr-x | .local/bin/x-pdf | 3 | ||||
-rwxr-xr-x | .local/bin/x-terminal-emulator | 3 | ||||
-rwxr-xr-x | .local/bin/x-www-browser | 3 | ||||
-rwxr-xr-x | .local/bin/xmessage | 2 |
6 files changed, 38 insertions, 44 deletions
diff --git a/.local/bin/config-path b/.local/bin/config-path index d0afa4a..7cd1fcd 100755 --- a/.local/bin/config-path +++ b/.local/bin/config-path @@ -3,17 +3,13 @@ # All the prefixes to consider prefixes=( "$HOME" - "$HOME/.local.`uname -m`" + "$HOME/.local.$(uname -m)" "$HOME/.local" - "$HOME/.prefix.`uname -m`" + "$HOME/.prefix.$(uname -m)" "$HOME/.prefix" "$HOME"/.gem/ruby/* ) -###################################################################### - -IFS=: - in_array() { local needle=$1; shift local haystack=("$@") @@ -46,32 +42,33 @@ var_done() { declare -p $1 } -###################################################################### - -# Import existing values -var_init PATH -var_init MANPATH -var_init LD_LIBRARY_PATH -var_init RUBYLIB -var_init PERL5LIB - -# Scan through prefixes -for prefix in "${prefixes[@]}"; do - var_add PATH "$prefix/bin" "$prefix/sbin" - var_add MANPATH "$prefix/share/man" - var_add LD_LIBRARY_PATH "$prefix"/lib{,32,64} - var_add RUBYLIB "$prefix"/lib{,32,64} - var_add PERL5LIB "$prefix"/lib{,32,64}/perl5 -done +main() { + IFS=: + # Import existing values + var_init PATH + var_init MANPATH + var_init LD_LIBRARY_PATH + var_init RUBYLIB + var_init PERL5LIB + # Scan through prefixes + for prefix in "${prefixes[@]}"; do + var_add PATH "$prefix/bin" "$prefix/sbin" + var_add MANPATH "$prefix/share/man" + var_add LD_LIBRARY_PATH "$prefix"/lib{,32,64} + var_add RUBYLIB "$prefix"/lib{,32,64} + var_add PERL5LIB "$prefix"/lib{,32,64}/perl5 + 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* \)*//' +} -# Finally, print our 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* \)*//' +main "$@" diff --git a/.local/bin/pick b/.local/bin/pick index ed2d44d..7458041 100755 --- a/.local/bin/pick +++ b/.local/bin/pick @@ -19,8 +19,8 @@ if [[ $1 = -s ]]; then shift # Scan to find a running instance for prog in "$@"; do - if [[ -n "`pgrep $prog`" ]]; then - printf '%s\n' "$prog" + if [[ -n "$(pgrep "${prog%% *}")" ]]; then + printf -- '%s\n' "$prog" exit 0 fi done @@ -28,11 +28,11 @@ fi # Scan to find one that is installed for prog in "$@"; do - if [[ -x "`which $prog 2>/dev/null`" ]]; then - printf '%s\n' "$prog" + if [[ -x "$(which "${prog%% *}" 2>/dev/null)" ]]; then + printf -- '%s\n' "$prog" exit 0 fi done -printf '%s\n' "$cmd: no suitable program found" +printf -- '%s\n' "$cmd: no suitable program found" >&2 exit 1 diff --git a/.local/bin/x-pdf b/.local/bin/x-pdf index 1b23a3d..8f9ef60 100755 --- a/.local/bin/x-pdf +++ b/.local/bin/x-pdf @@ -1,4 +1,3 @@ #!/bin/sh -`pick evince okular xpdf` "$@" -exit $? +exec $(pick atril zathura mupdf okular evince xpdf 'emacsclient -c') "$@" diff --git a/.local/bin/x-terminal-emulator b/.local/bin/x-terminal-emulator index 049b081..2e158cf 100755 --- a/.local/bin/x-terminal-emulator +++ b/.local/bin/x-terminal-emulator @@ -1,4 +1,3 @@ #!/bin/sh -`pick emacsterm urxvt gnome-terminal xterm` "$@" -exit $? +exec $(pick 'emacsterm -c' 'urxvt' 'xterm' 'gnome-terminal') "$@" diff --git a/.local/bin/x-www-browser b/.local/bin/x-www-browser index bbd8943..b0b05e0 100755 --- a/.local/bin/x-www-browser +++ b/.local/bin/x-www-browser @@ -1,4 +1,3 @@ #!/bin/sh -`pick -s conkeror iceweasel icecat firefox` "$@" -exit $? +exec $(pick -s iceweasel icecat firefox conkeror) "$@" diff --git a/.local/bin/xmessage b/.local/bin/xmessage index bd30b5e..46647e0 100755 --- a/.local/bin/xmessage +++ b/.local/bin/xmessage @@ -1,2 +1,2 @@ #!/bin/sh -gxmessage $@ -fn 'Monospace' +exec gxmessage "$@" -fn 'Monospace' |