-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.go
76 lines (64 loc) · 1.56 KB
/
main.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
package main
import (
"flag"
"fmt"
"os"
"github.com/abansal4032/go-whatsapp-cli/executors"
"github.com/abansal4032/go-whatsapp-cli/utils"
)
func commandUsage(err error, f *flag.FlagSet) {
fmt.Println("correct command usage is described below:")
f.PrintDefaults()
}
func errorHandler(err error) {
// TODO : graceful error handling here
if err != nil {
fmt.Printf("flow errored out : %v\n", err.Error())
}
}
func main() {
var err error
defer func() {
errorHandler(err)
}()
switch os.Args[1] {
case "login":
if err = executors.Login(); err != nil {
return
}
case "logout":
if err = executors.Logout(); err != nil {
return
}
case "sendText":
sendTextCmd := flag.NewFlagSet("sendText", flag.ExitOnError)
var args *utils.SendTextArgs
args, err = utils.ParseSendTextArgs(sendTextCmd, os.Args[2:])
if err != nil {
commandUsage(err, sendTextCmd)
return
}
if err = executors.SendMessage(args, utils.TEXTMESSAGEKEY); err != nil {
return
}
case "sendMedia":
sendMediaCmd := flag.NewFlagSet("sendMedia", flag.ExitOnError)
var args *utils.SendMediaArgs
args, err = utils.ParseSendMediaArgs(sendMediaCmd, os.Args[2:])
if err != nil {
commandUsage(err, sendMediaCmd)
return
}
if err = executors.SendMessage(args, utils.MEDIAMESSAGEKEY); err != nil {
return
}
case "startTextReceiver":
if err = executors.StartTextReceiver(); err != nil {
return
}
default:
// TODO : add a list of all permitted actions
err = fmt.Errorf("wrong command provided. please see below for the list of permitted actions")
return
}
}