Compare commits

..

No commits in common. "master" and "ascii-too" have entirely different histories.

5 changed files with 65 additions and 54 deletions

View File

@ -1,11 +0,0 @@
# emt
CLI Emojis
Binaries:
https://bullercodeworks.com/downloads/emt/
Included is a completion script for bash:
* `emt-completion.bash`
Just put `emt` in your path, then source the completion script when you
fire up your shell (put a line in your bashrc or something)

View File

@ -1,3 +0,0 @@
#/usr/bin/env bash
WORDLIST=`emt -completion-list`
complete -W "$WORDLIST" emt

5
go.mod
View File

@ -1,5 +0,0 @@
module git.bullercodeworks.com/brian/emt
go 1.16
require github.com/kyokomi/emoji v2.2.4+incompatible

2
go.sum
View File

@ -1,2 +0,0 @@
github.com/kyokomi/emoji v2.2.4+incompatible h1:np0woGKwx9LiHAQmwZx79Oc0rHpNw3o+3evou4BEPv4=
github.com/kyokomi/emoji v2.2.4+incompatible/go.mod h1:mZ6aGCD7yk8j6QY6KICwnZ2pxoszVseX1DNoGtU2tBA=

98
main.go
View File

@ -8,48 +8,80 @@ import (
"github.com/kyokomi/emoji" "github.com/kyokomi/emoji"
) )
func main() { var emoticons map[string]string
if len(os.Args) < 2 || strings.HasSuffix(os.Args[1], "-help") {
showUsage()
}
var getApprox bool func main() {
initEmoticons()
// We default to "shrug"
var done bool
var which string var which string
var matchWhich string if len(os.Args) == 2 {
allEmoji := emoji.CodeMap() which = os.Args[1]
for _, v := range os.Args { if which == "help" {
if v == "-a" { showHelp()
getApprox = true } else if which == "help-emoji" {
} else if v == "-completion-list" { allEmoji := emoji.CodeMap()
for k := range allEmoji { fmt.Println("== Supported Emoji ==")
fmt.Print(strings.Trim(k, ":"), " ") for k, v := range allEmoji {
fmt.Println(k + " " + v)
}
os.Exit(0)
}
// it might be a one-word emoji request
allEmoji := emoji.CodeMap()
if _, done = allEmoji[which]; done {
tst1 := ":" + which + ":"
tst2 := emoji.Sprint(tst1)
if tst1 != tst2 {
fmt.Println(tst2)
done = true
} }
} else { } else {
which = v // Search for any emoji that contain this string
} var cnt int
} for k, v := range allEmoji {
if strings.Contains(k, which) {
if !strings.HasPrefix(which, ":") && !strings.HasSuffix(which, ":") { fmt.Println(k + " " + v)
matchWhich = ":" + which + ":" cnt++
} }
if v, ok := allEmoji[matchWhich]; ok { }
fmt.Println(v) if cnt > 0 {
os.Exit(0) done = true
} else if getApprox { } else {
for k, v := range allEmoji { fmt.Println("No emoji for " + which + " found.")
if strings.Contains(k, which) {
fmt.Println(v)
} }
} }
} }
os.Exit(1) if !done {
var i string
if i, done = emoticons[which]; done {
fmt.Println(i)
}
}
if !done {
showHelp()
}
} }
func showUsage() { func showHelp() {
allEmoji := emoji.CodeMap() fmt.Println("There are a *ton* of emoji supported, to list them, do \"help-emoji\"")
fmt.Println("== Supported Emoji ==") for k, v := range emoticons {
for k, v := range allEmoji { fmt.Println(k, v)
fmt.Println(k + " " + v)
} }
os.Exit(0) os.Exit(0)
} }
func initEmoticons() {
emoticons = make(map[string]string)
emoticons["ascii-bat"] = "°·_·°"
emoticons["ascii-bomb"] = "●~*"
emoticons["ascii-fish"] = ">°)))彡"
emoticons["ascii-flip"] = "(╯°□°)╯︵ ┻━┻"
emoticons["ascii-lenny"] = "( ͡° ͜ʖ ͡°)"
emoticons["ascii-octopus"] = "<コ:彡"
emoticons["ascii-shrug"] = "¯\\_(ツ)_/¯"
emoticons["ascii-smirk"] = "( ͡° ͜ʖ ͡°)"
emoticons["ascii-snake"] = "~>°)"
emoticons["ascii-star"] = "☆彡"
emoticons["ascii-tadpole"] = "(°°)"
}