diff --git a/CHANGELOG.md b/CHANGELOG.md index 7a86d5a..2786a06 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,7 +7,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] - +### Added + +- Pass through return code 1 from selection tool ### Changed @@ -22,7 +24,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - +### Fixed + +- Always download from newest emoji list url +- Pass selection to custom typing tools through stdin diff --git a/README.md b/README.md index f87eb72..4986da3 100644 --- a/README.md +++ b/README.md @@ -222,6 +222,8 @@ BEMOJI_CLIP_CMD="path/to/your/clipboard/tool" BEMOJI_TYPE_CMD="path/to/your/xdotool" ``` +The candidate list (in the case of picker tool) or the picked selection are passed to the tools through stdin. + This is pretty experimental and you'll have to see how well it works for you. The setting can not be changed through the commandline alone. diff --git a/bemoji b/bemoji index d3df589..10ce980 100755 --- a/bemoji +++ b/bemoji @@ -98,7 +98,7 @@ prepare_db() { dl_default_emoji() { local emojis - emojis=$(curl -sSL "https://unicode.org/Public/emoji/14.0/emoji-test.txt") + emojis=$(curl -sSL "https://unicode.org/Public/emoji/latest/emoji-test.txt") printf "%s" "$emojis" | sed -ne 's/^.*; fully-qualified.*# \(\S*\) \S* \(.*$\)/\1 \2/gp' >"$bm_db_location/emojis.txt" printf "Downloaded default emoji set.\n" } @@ -165,11 +165,14 @@ _clipper() { # Set default typing uti _typer() { - totype=$(cat -) if [ -n "$BEMOJI_TYPE_CMD" ]; then # shellcheck disable=SC2068 ${BEMOJI_TYPE_CMD[@]} - elif [ -n "$WAYLAND_DISPLAY" ] && command -v wtype >/dev/null 2>&1; then + return + fi + + totype=$(cat -) + if [ -n "$WAYLAND_DISPLAY" ] && command -v wtype >/dev/null 2>&1; then wtype -s 30 "$totype" elif [ -n "$DISPLAY" ] && command -v xdotool >/dev/null 2>&1; then xdotool type --delay 30 "$totype" @@ -206,7 +209,7 @@ result=$(echo "$result" | grep -o '^\S\+' | tr -d '\n') case "$exit_value" in 1) - exit + exit 1 ;; 0) if [ ${#bm_cmds[@]} -eq 0 ]; then diff --git a/test/bemoji_cmds.bats b/test/bemoji_cmds.bats index 2d0f324..ced326c 100644 --- a/test/bemoji_cmds.bats +++ b/test/bemoji_cmds.bats @@ -54,6 +54,11 @@ setup() { typing result" } +@test "Passes selection to custom typer tool through stdin" { + BEMOJI_TYPE_CMD="cat -" run bemoji -t 3>&- + assert_output "❤️" +} + @test "Runs custom default command" { BEMOJI_DEFAULT_CMD="echo my custom command" run bemoji 3>&- assert_output "my custom command" @@ -64,6 +69,11 @@ typing result" assert_output "my clipping" } +@test "Returns status code 1 on picker status code 1" { + BEMOJI_PICKER_CMD="return 1" run bemoji -e 3>&- + assert_failure 1 +} + @test "Prints output with newline by default" { bats_require_minimum_version 1.5.0 BEMOJI_PICKER_CMD="echo heart" run --keep-empty-lines -- bemoji -e