diff --git a/.config/kak/scripts/kakfilter.sh b/.config/kak/scripts/kakfilter.sh new file mode 100755 index 00000000..f5b45b77 --- /dev/null +++ b/.config/kak/scripts/kakfilter.sh @@ -0,0 +1,41 @@ +#!/bin/sh + +# check for filter string +while getopts "f:" opt; do + case "$opt" in + f) + filter="$OPTARG" + ;; + h) + echo "kakfilter -f []" + echo "like kak -f, but supports commands" + echo "accepts file over stdin or as argument" + echo "applies and prints buffer content to stdout" + echo "kakrc is not loaded" + \?) + echo "Invalid option" + exit 1 + ;; + esac +done + +shift $((OPTIND - 1)) + +if [ -z "$filter" ]; then + echo "No filter!" + exit 1 +fi + +tempdir="$(mktemp -d kakpipe-XXXXXX)" +fifo="${tempdir}/fifo" +if [ -z "$1" ]; then + input="$(mktemp -p ${tempdir} input.XXXXXX)" + cat >"$input" +else + input="$1" +fi + +kak -n -e "exec ; execute-keys \"$filter\"; execute-keys ; write $fifo; quit!" "$input" +cat "$fifo" +# cleanup +rm -r "$tempdir" diff --git a/.config/kak/scripts/kakpipe.sh b/.config/kak/scripts/kakpipe.sh deleted file mode 100755 index b5826667..00000000 --- a/.config/kak/scripts/kakpipe.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/sh - -# check for filter string -while getopts "f:" opt; do - case "$opt" in - f) - filter="$OPTARG" - ;; - \?) - echo "Invalid option" - exit 1 - ;; - esac -done - -if [ -z "$filter" ]; then - echo "No filter!" - exit 1 -fi - -tempdir="$(mktemp -d kakpipe-XXXXXX)" -fifo="${tempdir}/fifo" - -# cleanup -rm -r "$tempdir"