Skip to content

Commit

Permalink
NOISSUE - Migrate gocoap library from v2 to v3.3 (#8)
Browse files Browse the repository at this point in the history
* feat: Migrate gocoap from v2 to v3.3

Signed-off-by: 1998-felix <felix.gateru@gmail.com>

* refactor: Remove .env file

Signed-off-by: 1998-felix <felix.gateru@gmail.com>

* refactor: rebase

Signed-off-by: 1998-felix <felix.gateru@gmail.com>

* refactor: update README, change observation interface

Signed-off-by: 1998-felix <felix.gateru@gmail.com>

* feat: add options command, example with coap.me

Signed-off-by: 1998-felix <felix.gateru@gmail.com>

* refactor: refactor code

Signed-off-by: 1998-felix <felix.gateru@gmail.com>

* refactor: make code DRY

Signed-off-by: 1998-felix <felix.gateru@gmail.com>

* fix: add support for set observe from options

Signed-off-by: 1998-felix <felix.gateru@gmail.com>

* feat: add keep alive for client conn

Signed-off-by: 1998-felix <felix.gateru@gmail.com>

* fix: prevent cli termination on nil err on ping

Signed-off-by: 1998-felix <felix.gateru@gmail.com>

* feat: add verbose flag

Signed-off-by: 1998-felix <felix.gateru@gmail.com>

* refactor: refactor msg output

Signed-off-by: 1998-felix <felix.gateru@gmail.com>

* fix: update documentation for flags

Signed-off-by: 1998-felix <felix.gateru@gmail.com>

* refactor: remove multiple print statements

Signed-off-by: 1998-felix <felix.gateru@gmail.com>

---------

Signed-off-by: 1998-felix <felix.gateru@gmail.com>
  • Loading branch information
felixgateru authored May 16, 2024
1 parent 01cd798 commit 826eeae
Show file tree
Hide file tree
Showing 7 changed files with 335 additions and 360 deletions.
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
# Copyright (c) Abstract Machines
# SPDX-License-Identifier: Apache-2.0

# Binaries for programs and plugins
*.exe
*.exe~
Expand Down
3 changes: 3 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
# Copyright (c) Abstract Machines
# SPDX-License-Identifier: Apache-2.0

all:
CGO_ENABLED=0 GOOS=linux go build -ldflags "-s -w" -o build/coap-cli-linux cmd/main.go
CGO_ENABLED=0 GOOS=darwin go build -ldflags "-s -w" -o build/coap-cli-darwin cmd/main.go
Expand Down
60 changes: 44 additions & 16 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,29 +1,57 @@
# CoAP CLI
Simple CoAP cli client written in Go.

Simple CoAP cli client written in Go.

## Usage
Pre-built binary can be found here: https://github.com/mainflux/coap-cli/releases/tag/v0.3.3.
When running, please provide following format:
`coap-cli` followed by method code (`get`, `put`, `post`, `delete`) and CoAP URL. After that, you can pass following flags:

| Flag | Description | Default value |
| ---- | ---------------------------------------------- | ---------------- |
| o | observe option - only valid with GET request | false |
| auth | auth option sent as URI Query | "" |
| h | host | "localhost" |
| p | port | "5683" |
| d | data to be sent in POST or PUT | "" |
| cf | content format | 50 (JSON format) |
```bash
Usage:
coap-cli [command]

Available Commands:
completion Generate the autocompletion script for the specified shell
delete Perform a DELETE request on a COAP resource
get Perform a GET request on a COAP resource
help Help about any command
post Perform a POST request on a COAP resource
put Perform a PUT request on a COAP resource

Flags:
-a, --auth string Auth
-c, --content-format int Content format (default 50)
-h, --help help for coap-cli
-H, --host string Host (default "localhost")
-k, --keep-alive uint Send a ping after interval seconds of inactivity. If not specified (or 0), keep-alive is disabled (default).
-m, --max-retries uint32 Max retries for keep alive (default 10)
-O, --options num,text Add option num with contents of text to the request. If the text begins with 0x, then the hex text (two [0-9a-f] per byte) is converted to binary data.
-p, --port string Port (default "5683")
-v, --verbose Verbose output
-d, --data string Data(default "") - only available for put, post and delete commands
-o, --observe bool Observe - only available for get command

Use "coap-cli [command] --help" for more information about a command
```

The options flag accepts a comma separated string comprising of the optionID defined by [RFC-7252](https://datatracker.ietf.org/doc/html/rfc7252) and a string or hex value. Hex values are used to set options that require numerical values e.g observe, maxAge

## Examples:
## Examples

```bash
coap-cli get channels/0bb5ba61-a66e-4972-bab6-26f19962678f/messages/subtopic -auth 1e1017e6-dee7-45b4-8a13-00e6afeb66eb -o
coap-cli get channels/0bb5ba61-a66e-4972-bab6-26f19962678f/messages/subtopic --auth 1e1017e6-dee7-45b4-8a13-00e6afeb66eb -o
```

```bash
coap-cli get channels/0bb5ba61-a66e-4972-bab6-26f19962678f/messages/subtopic --options 6,0x00 --options 15,auth=1e1017e6-dee7-45b4-8a13-00e6afeb66eb
```

```bash
coap-cli post channels/0bb5ba61-a66e-4972-bab6-26f19962678f/messages/subtopic -auth 1e1017e6-dee7-45b4-8a13-00e6afeb66eb -d "hello world"
coap-cli post channels/0bb5ba61-a66e-4972-bab6-26f19962678f/messages/subtopic --auth 1e1017e6-dee7-45b4-8a13-00e6afeb66eb -d "hello world"
```

```bash
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
```

```bash
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
coap-cli post channels/0bb5ba61-a66e-4972-bab6-26f19962678f/messages/subtopic -options 15,auth=1e1017e6-dee7-45b4-8a13-00e6afeb66eb -d "hello world" -H 0.0.0.0 -p 5683
```
Loading

0 comments on commit 826eeae

Please sign in to comment.