✨ Add -n option to prevent newline after emoji (#12)
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
Adds another commandline option `-n` to the application which prevents newlines from being added at the end of each output. Disabled by default. Co-authored-by: Marty Oehme <marty.oehme@gmail.com>
This commit is contained in:
parent
ec9020150c
commit
d03068dba7
4 changed files with 40 additions and 4 deletions
|
@ -7,7 +7,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||||
|
|
||||||
## [Unreleased]
|
## [Unreleased]
|
||||||
|
|
||||||
<!-- ### Added -->
|
### Added
|
||||||
|
|
||||||
|
- Add new option `-n` which suppresses printing the final newline character in output
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
|
|
||||||
|
|
19
README.md
19
README.md
|
@ -170,7 +170,7 @@ To display *only* the emoji list passed in, pass an extra `-P` flag to bemoji.
|
||||||
|
|
||||||
The path can also be a weblink which bemoji will download and use:
|
The path can also be a weblink which bemoji will download and use:
|
||||||
|
|
||||||
```
|
```bash
|
||||||
bemoji -f "https://raw.githubusercontent.com/jchook/emoji-menu/master/data/emojis.txt"
|
bemoji -f "https://raw.githubusercontent.com/jchook/emoji-menu/master/data/emojis.txt"
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -190,6 +190,22 @@ Other valid options for this setting are `emoji`, `math`, `none`.
|
||||||
If set to `none` and no files are in the emoji directory,
|
If set to `none` and no files are in the emoji directory,
|
||||||
bemoji will simply complain and not show anything.
|
bemoji will simply complain and not show anything.
|
||||||
|
|
||||||
|
### Do not skip to new line after output
|
||||||
|
|
||||||
|
By default, bemoji will craft the final output using a typical `echo` call for anything it prints directly.
|
||||||
|
|
||||||
|
That means, it will also contain a final newline character.
|
||||||
|
So, for example it would technically output `🦊\n` for the `fox` emoji,
|
||||||
|
which skips to a new line in most circumstances.
|
||||||
|
|
||||||
|
If you wish to prevent this character in the final output, use:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
bemoji -n
|
||||||
|
```
|
||||||
|
|
||||||
|
Using this option will suppress the newline character and *only* print `🦊` as its output.
|
||||||
|
|
||||||
### Using a custom tool for picking, clipping, typing
|
### Using a custom tool for picking, clipping, typing
|
||||||
|
|
||||||
If you want to replace one of the default supported tools with your own you can do this through environment variables:
|
If you want to replace one of the default supported tools with your own you can do this through environment variables:
|
||||||
|
@ -234,6 +250,7 @@ BEMOJI_CLIP_CMD=wl-copy # which clipboard tool to use
|
||||||
BEMOJI_TYPE_CMD=wtype # which typing tool to use (ydotool will NOT work)
|
BEMOJI_TYPE_CMD=wtype # which typing tool to use (ydotool will NOT work)
|
||||||
BEMOJI_PRIVATE_MODE=false # whether to save new entries
|
BEMOJI_PRIVATE_MODE=false # whether to save new entries
|
||||||
BEMOJI_IGNORE_RECENT=false # whether to display recent entries
|
BEMOJI_IGNORE_RECENT=false # whether to display recent entries
|
||||||
|
BEMOJI_ECHO_NEWLINE=true # whether to end the output with a newline character
|
||||||
```
|
```
|
||||||
|
|
||||||
## 🤗 Issues
|
## 🤗 Issues
|
||||||
|
|
9
bemoji
9
bemoji
|
@ -13,6 +13,8 @@ bm_history_file="${bm_cache_dir}/bemoji-history.txt"
|
||||||
# Command to run after user chooses an emoji
|
# Command to run after user chooses an emoji
|
||||||
bm_default_cmd="$BEMOJI_DEFAULT_CMD"
|
bm_default_cmd="$BEMOJI_DEFAULT_CMD"
|
||||||
|
|
||||||
|
# Newline after echo
|
||||||
|
bm_echo_newline=${BEMOJI_ECHO_NEWLINE:-true}
|
||||||
# Do not save choices
|
# Do not save choices
|
||||||
bm_private_mode=${BEMOJI_PRIVATE_MODE:-false}
|
bm_private_mode=${BEMOJI_PRIVATE_MODE:-false}
|
||||||
# Do not sort results
|
# Do not sort results
|
||||||
|
@ -31,6 +33,7 @@ usage() {
|
||||||
echo " -e Only echo out the picked emoji."
|
echo " -e Only echo out the picked emoji."
|
||||||
echo ""
|
echo ""
|
||||||
echo " Other options:"
|
echo " Other options:"
|
||||||
|
echo " -n Do not print a newline after the picked emoji."
|
||||||
echo " -p Do not save picked emoji to recent history."
|
echo " -p Do not save picked emoji to recent history."
|
||||||
echo " -P Do not order emoji by recently used."
|
echo " -P Do not order emoji by recently used."
|
||||||
echo " -D <choice> Choose specific default lists to download if none found locally."
|
echo " -D <choice> Choose specific default lists to download if none found locally."
|
||||||
|
@ -48,12 +51,13 @@ version() {
|
||||||
}
|
}
|
||||||
|
|
||||||
# Get Options
|
# Get Options
|
||||||
while getopts ":f:D:tcepPhv" o; do
|
while getopts ":f:D:tcenpPhv" o; do
|
||||||
case "${o}" in
|
case "${o}" in
|
||||||
f) BEMOJI_CUSTOM_LIST="${OPTARG}" ;;
|
f) BEMOJI_CUSTOM_LIST="${OPTARG}" ;;
|
||||||
t) bm_cmds+=(_typer) ;;
|
t) bm_cmds+=(_typer) ;;
|
||||||
c) bm_cmds+=(_clipper) ;;
|
c) bm_cmds+=(_clipper) ;;
|
||||||
e) bm_cmds+=(cat) ;;
|
e) bm_cmds+=(cat) ;;
|
||||||
|
n) bm_echo_newline=false;;
|
||||||
D) BEMOJI_DOWNLOAD_LIST="${OPTARG}" ;;
|
D) BEMOJI_DOWNLOAD_LIST="${OPTARG}" ;;
|
||||||
p) bm_private_mode=true ;;
|
p) bm_private_mode=true ;;
|
||||||
P) bm_ignore_recent=true ;;
|
P) bm_ignore_recent=true ;;
|
||||||
|
@ -209,7 +213,8 @@ case "$exit_value" in
|
||||||
bm_cmds+=(_clipper)
|
bm_cmds+=(_clipper)
|
||||||
fi
|
fi
|
||||||
for cmd in "${bm_cmds[@]}"; do
|
for cmd in "${bm_cmds[@]}"; do
|
||||||
echo "$result" | "$cmd"
|
[ "$bm_echo_newline" = true ] && echo_opts= || echo_opts=-n
|
||||||
|
echo $echo_opts "$result" | "$cmd"
|
||||||
done
|
done
|
||||||
;;
|
;;
|
||||||
10)
|
10)
|
||||||
|
|
|
@ -63,3 +63,15 @@ typing result"
|
||||||
BEMOJI_DEFAULT_CMD="echo my custom command" BEMOJI_CLIP_CMD="echo my clipping" run bemoji -c 3>&-
|
BEMOJI_DEFAULT_CMD="echo my custom command" BEMOJI_CLIP_CMD="echo my clipping" run bemoji -c 3>&-
|
||||||
assert_output "my clipping"
|
assert_output "my clipping"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@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
|
||||||
|
assert_output --regexp '^heart\n$'
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "Prints output without newline on -n option" {
|
||||||
|
bats_require_minimum_version 1.5.0
|
||||||
|
BEMOJI_PICKER_CMD="echo heart" run --keep-empty-lines -- bemoji -ne
|
||||||
|
assert_output --regexp '^heart$'
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue