Write usage information

This commit is contained in:
Mark Haines 2017-03-14 14:47:59 +00:00
parent 804d17a427
commit c9a2c9a8f7

View file

@ -5,6 +5,7 @@ package main
import ( import (
"encoding/base64" "encoding/base64"
"encoding/json" "encoding/json"
"flag"
"fmt" "fmt"
"github.com/matrix-org/dendrite/roomserver/api" "github.com/matrix-org/dendrite/roomserver/api"
"github.com/matrix-org/gomatrixserverlib" "github.com/matrix-org/gomatrixserverlib"
@ -14,23 +15,45 @@ import (
"time" "time"
) )
const usage = `Usage: %s
Generate a list of matrix room events for load testing.
Writes the events to stdout separated by new lines
Environment:
SERVER_NAME The name of the matrix server to generate events for.
(default: "localhost")
KEY_ID The ID of the key used to sign the events.
(default: "ed25519:auto")
PRIVATE_KEY Base64 encoded private key to sign events with
(default: <base64 encoded key of 0>)
ROOM_ID The room ID to generate events in.
(default: "!roomid:$SERVER_NAME")
USER_ID The user ID to use as the event sender.
(default: "@userid:$SERVER_NAME")
MESSAGE_COUNT The number of m.room.messsage events to generate.
(default: 10)
FORMAT The output format to use for the messages.
INPUT -> api.InputRoomEvent
RAW -> gomatrixserverlib.Event
(default: INPUT)
`
var ( var (
// The name of the matrix server to generate events for. serverName = defaulting(os.Getenv("SERVER_NAME"), "localhost")
serverName = defaulting(os.Getenv("SERVER_NAME"), "localhost") keyID = defaulting(os.Getenv("KEY_ID"), "ed25519:auto")
// The ID of the key used to sign the events.
keyID = defaulting(os.Getenv("KEY_ID"), "ed25519:auto")
// Base64 encoded private key to sign the events with.
privateKeyString = defaulting(os.Getenv("PRIVATE_KEY"), defaultKey) privateKeyString = defaulting(os.Getenv("PRIVATE_KEY"), defaultKey)
// The room ID to generate events in. roomID = defaulting(os.Getenv("ROOM_ID"), "!roomid:"+serverName)
roomID = defaulting(os.Getenv("ROOM_ID"), "!roomid:"+serverName) userID = defaulting(os.Getenv("USER_ID"), "@userid:"+serverName)
// The user ID to use for as the event sender. messageCount = defaulting(os.Getenv("MESSAGE_COUNT"), "10")
userID = defaulting(os.Getenv("USER_ID"), "@userid:"+serverName) format = defaulting(os.Getenv("FORMAT"), "INPUT")
// The number of m.room.messsage events to generate.
messageCount = defaulting(os.Getenv("MESSAGE_COUNT"), "10")
// The output format to use for the messages.
// INPUT -> api.InputRoomEvent
// RAW -> gomatrixserverlib.Event
format = defaulting(os.Getenv("FORMAT"), "INPUT")
) )
func defaulting(value, defaultValue string) string { func defaulting(value, defaultValue string) string {
@ -50,6 +73,10 @@ var b gomatrixserverlib.EventBuilder
var eventID int var eventID int
func main() { func main() {
flag.Usage = func() {
fmt.Fprintf(os.Stderr, usage, os.Args[0])
}
flag.Parse()
// Decode the ed25519 private key. // Decode the ed25519 private key.
privateKeyBytes, err := base64.RawStdEncoding.DecodeString(privateKeyString) privateKeyBytes, err := base64.RawStdEncoding.DecodeString(privateKeyString)
if err != nil { if err != nil {