at main 1.7 kB view raw
1#!/usr/bin/env bash 2# 3# adapted from this charm CLI blog post: 4# 5# https://charm.sh/blog/kamoji-generator/ 6 7if ! test -x "$(command -v skate)"; then 8 echo "missing required dependency: skate" 9 exit 1 10fi 11 12if ! test -x "$(command -v gum)"; then 13 echo "missing required dependency: gum" 14 exit 1 15fi 16 17notif() { 18 notify-send "$kaomoji copied to clipboard!" 19} 20 21logic() { 22 # check for existing DB 23 check="$(skate list @kaomoji)" 24 25 if [[ $check == "" ]]; then 26 echo "please install kaomojis: kaomoji install" 27 exit 1 28 fi 29} 30 31default() { 32 logic 33 34 # print list to select or search for a kaomoji by name 35 kaomoji="$(skate list @kaomoji | gum filter | sed -e 's/^\w*\ *//')" 36 if [[ "$kaomoji" == "" ]]; then 37 exit 1 38 fi 39 40 choice=$(echo "$kaomoji") 41 if [[ "$choice" == "" ]]; then 42 exit 1 43 fi 44 45 if command -v xsel &> /dev/null; then 46 printf '%s' "$choice" | xclip -sel clip # X11 47 notif 48 elif command -v pbcopy &> /dev/null; then 49 printf '%s' "$choice" | pbcopy # macOS 50 notif 51 else 52 printf 'Here you go: %s\n' "$choice" | lolcat -p 0.5 53 notif 54 exit 0 55 fi 56 57 printf 'Copied %s to the clipboard\n' "$choice" | lolcat -p 0.5 58 notif 59} 60 61menu() { 62 pick=$(skate list "@kaomoji" | dmenu -i -c -l 10) 63 64 if [[ "$pick" == "" ]]; then 65 exit 0 66 fi 67 68 printf "$pick" | sed -e 's/^\w*\ *//' | tr -d '[:blank:]' | xclip -sel clip | notif 69} 70 71case "$1" in 72 "") 73 default 74 ;; 75 "-h" | "--help" | "help") 76 printf 'pick from a list of kaomojis! \n\n' 77 printf 'Usage: %s [kind]\n' "$(basename "$0")" 78 exit 1 79 ;; 80 "install" | "add") 81 echo "installing skate DB" | lolcat -p 0.5 82 source install-db.sh 83 clear 84 ;; 85 "dmenu" | "menu") 86 menu 87 ;; 88esac