-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.go
70 lines (60 loc) · 1.51 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
package main
import (
"flag"
"fmt"
"log"
"os"
"rocketchat_cli/interactive"
"github.com/badkaktus/gorocket"
)
var username string
var password string
var url string
var channel string
var text string
var prompt bool
var help bool
func init() {
flag.StringVar(&username, "user", "", "Name of your User")
flag.StringVar(&password, "password", "", "Your Password")
flag.StringVar(&channel, "channel", "general", "Name of the channel to post to")
flag.StringVar(&url, "url", "rocket.chat", "Url of your Rocketchat Instanz")
flag.StringVar(&text, "text", "Lorem Ipsum", "The Text you want to post")
flag.BoolVar(&prompt, "prompt", false, "Interactive Input")
flag.BoolVar(&help, "help", false, "help")
flag.Parse()
}
func main() {
if help {
flag.Usage()
os.Exit(0)
} else if prompt {
lg, mg, url := interactive.Getdata()
fmt.Println(lg, mg, url)
os.Exit(0)
} else if !prompt && (username == "" || password == "") {
flag.Usage()
os.Exit(1)
}
client := gorocket.NewClient(url)
login := gorocket.LoginPayload{
User: username,
Password: password,
}
lg, _ := client.Login(&login)
// error Wert wird nicht korrekt zurückgegeben, daher wird Status geprüft
if lg.Status != "success" {
log.Fatal("Login Fehlgeschlagen mit folgenden Fehler: \n", lg.Message)
os.Exit(1)
}
// post a message
str := gorocket.Message{
Channel: channel,
Text: text,
}
msg, err := client.PostMessage(&str)
if err != nil {
fmt.Printf("Error: %+v", err)
}
fmt.Printf("Message was posted %t", msg.Success)
}