11package main
22
33import (
4+ "fmt"
5+
6+ "github.com/gookit/gitw/gmoji"
47 "github.com/gookit/goutil/cflag"
8+ "github.com/gookit/goutil/cliutil"
59 "github.com/gookit/goutil/errorx"
610)
711
@@ -10,17 +14,50 @@ var cmd = cflag.New(func(c *cflag.CFlags) {
1014 c .Desc = "quick show or render git emoji code"
1115})
1216
13- var opts = struct {
17+ var geOpts = struct {
18+ list bool
19+ lang string
1420 render string
15- search string
21+ search cflag. String
1622}{}
1723
24+ // quick run:
25+ //
26+ // go run ./cmd/gmoji
27+ // go run ./cmd/gmoji -h
28+ //
29+ // install to GOPATH/bin:
30+ //
31+ // go install ./cmd/gmoji
1832func main () {
19- cmd .StringVar (& opts .render , "render" , "" , "want rendered text;;r" )
20- cmd .StringVar (& opts .search , "search" , "" , "want rendered text;;s" )
33+ cmd .Var (& geOpts .search , "search" , "search emoji by keywords,multi by comma;;s" )
34+ cmd .StringVar (& geOpts .render , "render" , "" , "want rendered text;;r" )
35+ cmd .StringVar (& geOpts .lang , "lang" , gmoji .LangEN , "select language for emojis;;L" )
36+ cmd .BoolVar (& geOpts .list , "list" , false , "list all git emojis;;ls,l" )
37+
2138 cmd .Func = execute
39+ cmd .QuickRun ()
2240}
2341
2442func execute (c * cflag.CFlags ) error {
25- return errorx .Raw ("TODO" )
43+ em , err := gmoji .Emojis (geOpts .lang )
44+ if err != nil {
45+ return err
46+ }
47+
48+ if geOpts .list {
49+ cliutil .Warnf ("All git emojis(total: %d):\n " , em .Len ())
50+ fmt .Println (em .String ())
51+ return nil
52+ }
53+
54+ if geOpts .search != "" {
55+ sub := em .Search (geOpts .search .Strings (), 10 )
56+
57+ cliutil .Warnf ("Matched emojis(total: %d):\n " , sub .Len ())
58+ fmt .Println (sub .String ())
59+ return nil
60+ }
61+
62+ return errorx .Raw ("TODO render ..." )
2663}
0 commit comments