Skip to content

Commit ddbcb8a

Browse files
author
dusanb
committed
Add help menu
Signed-off-by: dusanb <borovcanindusan1@gmail.com.com>
1 parent f100834 commit ddbcb8a

File tree

2 files changed

+34
-6
lines changed

2 files changed

+34
-6
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ When running, please provide following format:
99

1010
| Flag | Description | Default value |
1111
| ---- | ---------------------------------------------- | ---------------- |
12-
| o | observe option - only valid with Get request | false |
12+
| o | observe option - only valid with GET request | false |
1313
| auth | auth option sent as URI Query | "" |
1414
| h | host | "localhost" |
1515
| p | port | "5683" |

cmd/main.go

Lines changed: 33 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,25 @@ const (
2525
delete = "DELETE"
2626
)
2727

28+
const (
29+
helpCmd = `Use "coap-cli --help" for help.`
30+
helpMsg = `
31+
Usage: coap-cli <method> <URL> [options]
32+
mathod: get, put, post or delete
33+
-o observe option - only valid with GET request (default: false)
34+
-auth auth option sent as URI Query (default: "")
35+
-h host (default: "localhost")
36+
-p port (default: "5683")
37+
-d data to be sent in POST or PUT (default: "")
38+
-cf content format (default: 50 - JSON format))
39+
40+
Examples:
41+
coap-cli get channels/0bb5ba61-a66e-4972-bab6-26f19962678f/messages/subtopic -auth 1e1017e6-dee7-45b4-8a13-00e6afeb66eb -o
42+
coap-cli post channels/0bb5ba61-a66e-4972-bab6-26f19962678f/messages/subtopic -auth 1e1017e6-dee7-45b4-8a13-00e6afeb66eb -d "hello world"
43+
coap-cli post channels/0bb5ba61-a66e-4972-bab6-26f19962678f/messages/subtopic -auth 1e1017e6-dee7-45b4-8a13-00e6afeb66eb -d "hello world" -h 0.0.0.0 -p 1234
44+
`
45+
)
46+
2847
func parseCode(code string) (codes.Code, error) {
2948
switch code {
3049
case get:
@@ -47,26 +66,35 @@ func printMsg(m *pool.Message) {
4766

4867
func main() {
4968
if len(os.Args) < 2 {
50-
log.Fatal("Message code must be GET, PUT, POST or DELETE")
69+
log.Fatal(helpCmd)
70+
}
71+
help := strings.ToLower(os.Args[1])
72+
if help == "-h" || help == "--help" {
73+
log.Println(helpMsg)
74+
os.Exit(0)
5175
}
76+
5277
code, err := parseCode(strings.ToUpper(os.Args[1]))
5378
if err != nil {
54-
log.Fatal("error: ", err)
79+
log.Fatalf("Can't read request code: %s\n%s", err, helpCmd)
5580
}
81+
5682
if len(os.Args) < 3 {
57-
log.Fatal("Please enter valid CoAP URL")
83+
log.Fatalf("CoAP URL must not be empty.\n%s", helpCmd)
5884
}
5985
path := os.Args[2]
60-
os.Args = os.Args[2:]
86+
if strings.HasPrefix(path, "-") {
87+
log.Fatalf("Please enter a valid CoAP URL.\n%s", helpCmd)
88+
}
6189

90+
os.Args = os.Args[2:]
6291
o := flag.Bool("o", false, "Observe")
6392
h := flag.String("h", "localhost", "Host")
6493
p := flag.String("p", "5683", "Port")
6594
// Default type is JSON.
6695
cf := flag.Int("q", 50, "Content format")
6796
d := flag.String("d", "", "Message data")
6897
a := flag.String("auth", "", "Auth token")
69-
7098
flag.Parse()
7199

72100
client, err := coap.New(*h + ":" + *p)

0 commit comments

Comments
 (0)