Skip to content

Commit 09556af

Browse files
committed
Add encode/decode commands
Add CLI tools to encode or decode from stdin to stdout. Signed-off-by: Pieter De Gendt <[email protected]>
1 parent 4b9bfe1 commit 09556af

File tree

2 files changed

+65
-0
lines changed

2 files changed

+65
-0
lines changed

cmd/decode/main.go

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package main
2+
3+
import (
4+
"io"
5+
"os"
6+
7+
"github.com/pdgendt/cobs"
8+
)
9+
10+
func main() {
11+
dec := cobs.NewDecoder(os.Stdout)
12+
for {
13+
tmp := make([]byte, 1024)
14+
n, err := os.Stdin.Read(tmp)
15+
if err == io.EOF {
16+
break
17+
}
18+
if err != nil {
19+
panic(err)
20+
}
21+
22+
_, err = dec.Write(tmp[:n])
23+
if err != nil {
24+
panic(err)
25+
}
26+
}
27+
28+
}

cmd/encode/main.go

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
package main
2+
3+
import (
4+
"flag"
5+
"io"
6+
"os"
7+
8+
"github.com/pdgendt/cobs"
9+
)
10+
11+
func main() {
12+
delimiter := flag.Bool("del", false, "Append a delimiter")
13+
14+
flag.Parse()
15+
16+
enc := cobs.NewEncoder(os.Stdout)
17+
for {
18+
tmp := make([]byte, 1024)
19+
n, err := os.Stdin.Read(tmp)
20+
if err == io.EOF {
21+
break
22+
}
23+
if err != nil {
24+
panic(err)
25+
}
26+
27+
_, err = enc.Write(tmp[:n])
28+
if err != nil {
29+
panic(err)
30+
}
31+
}
32+
enc.Close()
33+
34+
if *delimiter {
35+
os.Stdout.Write([]byte{cobs.Delimiter})
36+
}
37+
}

0 commit comments

Comments
 (0)