From 79603171010f907ef037213b7ec6cbf5f33258c1 Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Thu, 10 Jul 2014 18:05:37 -0400 Subject: stuff --- .local/bin/x-pdf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to '.local/bin') diff --git a/.local/bin/x-pdf b/.local/bin/x-pdf index 1b23a3d..3610fde 100755 --- a/.local/bin/x-pdf +++ b/.local/bin/x-pdf @@ -1,4 +1,4 @@ #!/bin/sh -`pick evince okular xpdf` "$@" +`pick zathura mupdf okular evince xpdf` "$@" exit $? -- cgit v1.2.3-2-g168b From 3f726c475192da8167b18baaa5d1ba0402ebcd0f Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Fri, 10 Oct 2014 17:13:44 -0400 Subject: rewrite bin/config-path --- .local/bin/config-path | 67 +++++++++++++++++++++++++++++++------------------- 1 file changed, 42 insertions(+), 25 deletions(-) (limited to '.local/bin') diff --git a/.local/bin/config-path b/.local/bin/config-path index 6b9019c..f4c2342 100755 --- a/.local/bin/config-path +++ b/.local/bin/config-path @@ -1,16 +1,22 @@ #!/bin/bash -# All the prefixes to consider -prefixes=( - "$HOME" - "$HOME/.local.`uname -m`" - "$HOME/.local" - "$HOME/.prefix.`uname -m`" - "$HOME/.prefix" - "$HOME"/.gem/ruby/* -) - -###################################################################### +the_guts() { + # Add generic prefixes + add_prefix "$HOME" + add_prefix "$HOME/.local.$(uname -m)" + add_prefix "$HOME/.local" + add_prefix "$HOME/.prefix.$(uname -m)" + add_prefix "$HOME/.prefix" + + # Add rubygem prefixes + local dir + for dir in "$HOME"/.gem/*; do + # Only add it if we have that type of ruby + if type "${dir##*/}" &>/dev/null; then + add_prefix "$dir"/* + fi + done +} in_array() { local needle=$1; shift @@ -22,30 +28,41 @@ in_array() { return 1 } -# Import existing values -IFS=: paths=($PATH) -IFS=: rubylibs=($RUBYLIB) +add_prefix() { + local prefix=$1 + local dir -# Scan through prefixes -for prefix in "${prefixes[@]}"; do # PATH dir="$prefix/bin" if [[ -d "$dir" ]] && ! in_array "$dir" "${paths[@]}"; then paths=("$dir" "${paths[@]}") fi + # RUBYLIB dir="$prefix/lib" if [[ -d "$dir" ]] && ! in_array "$dir" "${rubylibs[@]}"; then rubylibs=("$dir" "${rubylibs[@]}") fi -done +} -# Finally, print our values -IFS=: PATH="${paths[*]}" -IFS=: RUBYLIB="${rubylibs[*]}" +main() { + # Import existing values + declare -ga paths rubylibs + IFS=: paths=($PATH) + IFS=: rubylibs=($RUBYLIB) + + the_guts + + # Put our values into the env variables + IFS=: PATH="${paths[*]}" + IFS=: RUBYLIB="${rubylibs[*]}" + + # Finally, print the values + # The sed bit here is the only time we call an external program + { + declare -p PATH + declare -p RUBYLIB + } | sed 's/^declare \(-\S* \)*//' +} -# The sed bit here is the only time we call an external program -{ - declare -p PATH - declare -p RUBYLIB -} | sed 's/^declare \(-\S* \)*//' +main -- cgit v1.2.3-2-g168b From a12f3189bcf6d2cf277acfa7824961b158bd57e6 Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Sat, 29 Nov 2014 22:38:56 -0500 Subject: stuff --- .local/bin/pick | 4 ++-- .local/bin/x-pdf | 3 +-- .local/bin/x-terminal-emulator | 3 +-- .local/bin/x-www-browser | 3 +-- 4 files changed, 5 insertions(+), 8 deletions(-) (limited to '.local/bin') diff --git a/.local/bin/pick b/.local/bin/pick index ed2d44d..6dc905f 100755 --- a/.local/bin/pick +++ b/.local/bin/pick @@ -19,7 +19,7 @@ if [[ $1 = -s ]]; then shift # Scan to find a running instance for prog in "$@"; do - if [[ -n "`pgrep $prog`" ]]; then + if [[ -n "$(pgrep "${prog%% *}")" ]]; then printf '%s\n' "$prog" exit 0 fi @@ -28,7 +28,7 @@ fi # Scan to find one that is installed for prog in "$@"; do - if [[ -x "`which $prog 2>/dev/null`" ]]; then + if [[ -x "$(which "${prog%% *}" 2>/dev/null)" ]]; then printf '%s\n' "$prog" exit 0 fi diff --git a/.local/bin/x-pdf b/.local/bin/x-pdf index 3610fde..cfaa258 100755 --- a/.local/bin/x-pdf +++ b/.local/bin/x-pdf @@ -1,4 +1,3 @@ #!/bin/sh -`pick zathura mupdf okular evince xpdf` "$@" -exit $? +eval $(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..075dda5 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 $? +eval $(pick 'emacsterm -c' 'urxvt' 'xterm' 'gnome-terminal') "$@" diff --git a/.local/bin/x-www-browser b/.local/bin/x-www-browser index bbd8943..945dcfc 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 $? +eval $(pick -s iceweasel icecat firefox conkeror) "$@" -- cgit v1.2.3-2-g168b From 7147501a1a7a60344c4a0b856abea25c5a382428 Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Thu, 29 Jan 2015 00:34:11 -0500 Subject: .local/bin/x-*: exec not eval; I'm smert. --- .local/bin/x-pdf | 2 +- .local/bin/x-terminal-emulator | 2 +- .local/bin/x-www-browser | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) (limited to '.local/bin') diff --git a/.local/bin/x-pdf b/.local/bin/x-pdf index cfaa258..8f9ef60 100755 --- a/.local/bin/x-pdf +++ b/.local/bin/x-pdf @@ -1,3 +1,3 @@ #!/bin/sh -eval $(pick atril zathura mupdf okular evince xpdf 'emacsclient -c') "$@" +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 075dda5..2e158cf 100755 --- a/.local/bin/x-terminal-emulator +++ b/.local/bin/x-terminal-emulator @@ -1,3 +1,3 @@ #!/bin/sh -eval $(pick 'emacsterm -c' 'urxvt' 'xterm' 'gnome-terminal') "$@" +exec $(pick 'emacsterm -c' 'urxvt' 'xterm' 'gnome-terminal') "$@" diff --git a/.local/bin/x-www-browser b/.local/bin/x-www-browser index 945dcfc..b0b05e0 100755 --- a/.local/bin/x-www-browser +++ b/.local/bin/x-www-browser @@ -1,3 +1,3 @@ #!/bin/sh -eval $(pick -s iceweasel icecat firefox conkeror) "$@" +exec $(pick -s iceweasel icecat firefox conkeror) "$@" -- cgit v1.2.3-2-g168b From 435a7b5e8e590240340232cc1832ead32b87adc6 Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Thu, 29 Jan 2015 00:34:26 -0500 Subject: .local/bin/xmessage: get in on the exec party --- .local/bin/xmessage | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to '.local/bin') diff --git a/.local/bin/xmessage b/.local/bin/xmessage index bd30b5e..08fd95e 100755 --- a/.local/bin/xmessage +++ b/.local/bin/xmessage @@ -1,2 +1,2 @@ #!/bin/sh -gxmessage $@ -fn 'Monospace' +exec gxmessage $@ -fn 'Monospace' -- cgit v1.2.3-2-g168b From c007a61ad7e885f7f3dadd05bae555e577ce27c9 Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Thu, 29 Jan 2015 01:37:13 -0500 Subject: pick: be careful with arguments being flags to 'printf', use stderr --- .local/bin/pick | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to '.local/bin') diff --git a/.local/bin/pick b/.local/bin/pick index 6dc905f..7458041 100755 --- a/.local/bin/pick +++ b/.local/bin/pick @@ -20,7 +20,7 @@ if [[ $1 = -s ]]; then # Scan to find a running instance for prog in "$@"; do if [[ -n "$(pgrep "${prog%% *}")" ]]; then - printf '%s\n' "$prog" + printf -- '%s\n' "$prog" exit 0 fi done @@ -29,10 +29,10 @@ fi # Scan to find one that is installed for prog in "$@"; do if [[ -x "$(which "${prog%% *}" 2>/dev/null)" ]]; then - printf '%s\n' "$prog" + 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 -- cgit v1.2.3-2-g168b From 1e77007556e623a63478a18790098c510b9cbbd9 Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Thu, 29 Jan 2015 01:37:40 -0500 Subject: .local/bin/x-*: exec, not eval. I'm smert --- .local/bin/x-pdf | 2 +- .local/bin/x-terminal-emulator | 2 +- .local/bin/x-www-browser | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) (limited to '.local/bin') diff --git a/.local/bin/x-pdf b/.local/bin/x-pdf index cfaa258..8f9ef60 100755 --- a/.local/bin/x-pdf +++ b/.local/bin/x-pdf @@ -1,3 +1,3 @@ #!/bin/sh -eval $(pick atril zathura mupdf okular evince xpdf 'emacsclient -c') "$@" +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 075dda5..2e158cf 100755 --- a/.local/bin/x-terminal-emulator +++ b/.local/bin/x-terminal-emulator @@ -1,3 +1,3 @@ #!/bin/sh -eval $(pick 'emacsterm -c' 'urxvt' 'xterm' 'gnome-terminal') "$@" +exec $(pick 'emacsterm -c' 'urxvt' 'xterm' 'gnome-terminal') "$@" diff --git a/.local/bin/x-www-browser b/.local/bin/x-www-browser index 945dcfc..b0b05e0 100755 --- a/.local/bin/x-www-browser +++ b/.local/bin/x-www-browser @@ -1,3 +1,3 @@ #!/bin/sh -eval $(pick -s iceweasel icecat firefox conkeror) "$@" +exec $(pick -s iceweasel icecat firefox conkeror) "$@" -- cgit v1.2.3-2-g168b