Skip to content
This repository was archived by the owner on Aug 10, 2024. It is now read-only.

Change string channel to interface{} channel to allow signal sendings… #75

Merged
merged 1 commit into from
Jul 22, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
47 changes: 28 additions & 19 deletions cli/cli2cloud/cli2cloud.go
Original file line number Diff line number Diff line change
Expand Up @@ -69,30 +69,39 @@ func sendPipedMessages(c proto.Cli2CloudClient, ctx context.Context, password *s
time.Sleep(delay * time.Second)

// Create a messages stream which is reading from both Stdout and Stdin
streamMessages := make(chan string)
defer close(streamMessages)
streamMessages := make(chan interface{})
//defer close(streamMessages)
go streams.CreateStreams(streamMessages)

for row := range streamMessages {
// Print original input to client as well
fmt.Println(row)

if s != nil {
encryptedRow, err := s.Encrypt(row)
if err != nil {
log.Println("Can't encrypt the data.", err)
return err
for res := range streamMessages {
switch res.(type) {
case bool:
fmt.Println("Close channel")
//_, err = stream.CloseAndRecv()
//return err
break
default:
row := res.(string)
// Print original input to client as well
fmt.Println(row)

if s != nil {
encryptedRow, err := s.Encrypt(row)
if err != nil {
log.Println("Can't encrypt the data.", err)
return err
}
row = *encryptedRow
}
row = *encryptedRow
}

content := proto.PublishRequest{
Payload: &proto.Payload{Body: row},
ClientId: clientId,
}
content := proto.PublishRequest{
Payload: &proto.Payload{Body: row},
ClientId: clientId,
}

if err := stream.Send(&content); err != nil {
return err
if err := stream.Send(&content); err != nil {
return err
}
}
}

Expand Down
7 changes: 4 additions & 3 deletions cli/cli2cloud/streams/collectStreams.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,16 @@ import (
"os"
)

func readFromStreams(messages chan string, f *os.File) {
func readFromStreams(messages chan interface{}, f *os.File) {
scanner := bufio.NewScanner(f)
for scanner.Scan() {
row := scanner.Text()
messages <- row
}
close(messages)
}

func CreateStreams(messages chan string) {
func CreateStreams(messages chan interface{}) {
go readFromStreams(messages, os.Stdin)
go readFromStreams(messages, os.Stderr)
//go readFromStreams(messages, os.Stderr)
}