From b73e742c5058ac6ce29183636edd201fc294db50 Mon Sep 17 00:00:00 2001 From: Chris Hobbs Date: Fri, 9 Mar 2018 20:50:48 +0000 Subject: [PATCH] Allow use as a rofi script (#68) * Allow use as a rofi script * fixup! Allow use as a rofi script * fixup! Allow use as a rofi script * fixup! Allow use as a rofi script --- clipmenu | 30 ++++++++++++++++++++++-------- 1 file changed, 22 insertions(+), 8 deletions(-) diff --git a/clipmenu b/clipmenu index 3d245a4..b039207 100755 --- a/clipmenu +++ b/clipmenu @@ -30,14 +30,28 @@ if [[ "$CM_LAUNCHER" == rofi ]]; then set -- -dmenu "$@" fi -# It's okay to hardcode `-l 8` here as a sensible default without checking -# whether `-l` is also in "$@", because the way that dmenu works allows a later -# argument to override an earlier one. That is, if the user passes in `-l`, our -# one will be ignored. -chosen_line=$( - cat "$cache_file_prefix"_* /dev/null | LC_ALL=C sort -rnk 1 | - cut -d' ' -f2- | awk '!seen[$0]++' | "$CM_LAUNCHER" -l 8 "$@" -) +list_clips() { + cat "$cache_file_prefix"_* /dev/null | LC_ALL=C sort -rnk 1 | cut -d' ' -f2- | awk '!seen[$0]++' +} + +if [[ "$CM_LAUNCHER" == rofi-script ]]; then + if ! (( $# )); then + list_clips + exit + else + # https://github.com/koalaman/shellcheck/issues/1141 + # shellcheck disable=SC2124 + chosen_line="${@: -1}" + fi +else + # It's okay to hardcode `-l 8` here as a sensible default without checking + # whether `-l` is also in "$@", because the way that dmenu works allows a later + # argument to override an earlier one. That is, if the user passes in `-l`, our + # one will be ignored. + chosen_line=$( + list_clips | "$CM_LAUNCHER" -l 8 "$@" + ) +fi [[ $chosen_line ]] || exit 1