diff --git a/examples/kaomoji.sh b/examples/kaomoji.sh new file mode 100644 index 0000000..1684656 --- /dev/null +++ b/examples/kaomoji.sh @@ -0,0 +1,47 @@ +#!/usr/bin/env bash + +# If the user passes '-h', '--help', or 'help' print out a little bit of help. +# text. +case "$1" in + "-h" | "--help" | "help") + printf 'Generate kaomojis on request.\n\n' + printf 'Usage: %s [kind]\n' "$(basename "$0")" + exit 1 + ;; +esac + +# The user can pass an argument like "bear" or "angry" to specify the general +# kind of Kaomoji produced. +sentiment="" +if [[ $1 != "" ]]; then + sentiment=" $1" +fi + +# Ask mods to generate Kaomojis. Save the output in a variable. +kaomoji="$(mods "generate 10${sentiment} kaomojis. number them and put each one on its own line.")" +if [[ $kaomoji == "" ]]; then + exit 1 +fi + +# Pipe mods output to gum so the user can choose the perfect kaomoji. Save that +# choice in a variable. Also note that we're using cut to drop the item number +# in front of the Kaomoji. +choice="$(echo "$kaomoji" | gum choose | cut -d ' ' -f 2)" +if [[ $choice == "" ]]; then + exit 1 +fi + +# If xsel (X11) or pbcopy (macOS) exists, copy to the clipboard. If not, just +# print the Kaomoji. +if command -v xsel &> /dev/null; then + printf '%s' "$choice" | xclip -sel clip # X11 +elif command -v pbcopy &> /dev/null; then + printf '%s' "$choice" | pbcopy # macOS +else + # We can't copy, so just print it out. + printf 'Here you go: %s\n' "$choice" + exit 0 +fi + +# We're done! +printf 'Copied %s to the clipboard\n' "$choice"