You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
62 lines
1.1 KiB
62 lines
1.1 KiB
package main
|
|
|
|
import (
|
|
"bufio"
|
|
"flag"
|
|
"fmt"
|
|
"github.com/seaweedfs/seaweedfs/weed/mq/client"
|
|
"github.com/seaweedfs/seaweedfs/weed/mq/messages"
|
|
"os"
|
|
"time"
|
|
)
|
|
|
|
var (
|
|
master = flag.String("master", "localhost:9333", "master csv list")
|
|
topic = flag.String("topic", "", "topic name")
|
|
)
|
|
|
|
func main() {
|
|
flag.Parse()
|
|
|
|
publisher := client.NewPublisher(&client.PublisherOption{
|
|
Masters: *master,
|
|
Topic: *topic,
|
|
})
|
|
|
|
err := eachLineStdin(func(line string) error {
|
|
if len(line) > 0 {
|
|
if err := publisher.Publish(&messages.Message{
|
|
Key: nil,
|
|
Content: []byte(line),
|
|
Properties: nil,
|
|
Ts: time.Time{},
|
|
}); err != nil {
|
|
return err
|
|
}
|
|
}
|
|
return nil
|
|
})
|
|
|
|
publisher.Shutdown()
|
|
|
|
if err != nil {
|
|
fmt.Printf("error: %v\n", err)
|
|
}
|
|
}
|
|
|
|
func eachLineStdin(eachLineFn func(string) error) error {
|
|
scanner := bufio.NewScanner(os.Stdin)
|
|
for scanner.Scan() {
|
|
text := scanner.Text()
|
|
if err := eachLineFn(text); err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
// handle error
|
|
if scanner.Err() != nil {
|
|
return fmt.Errorf("scan stdin: %v", scanner.Err())
|
|
}
|
|
|
|
return nil
|
|
}
|