--- /dev/null
+package main
+
+import (
+ "crypto/tls"
+ "flag"
+ "fmt"
+ "os"
+
+ "layeh.com/barnard/uiterm"
+ "layeh.com/gumble/gumble"
+ _ "layeh.com/gumble/opus"
+)
+
+func main() {
+ // Command line flags
+ server := flag.String("server", "localhost:64738", "the server to connect to")
+ username := flag.String("username", "", "the username of the client")
+ password := flag.String("password", "", "the password of the server")
+ insecure := flag.Bool("insecure", false, "skip server certificate verification")
+ certificate := flag.String("certificate", "", "PEM encoded certificate and private key")
+
+ flag.Parse()
+
+ // Initialize
+ b := Barnard{
+ Config: gumble.NewConfig(),
+ Address: *server,
+ }
+
+ b.Config.Username = *username
+ b.Config.Password = *password
+
+ if *insecure {
+ b.TLSConfig.InsecureSkipVerify = true
+ }
+ if *certificate != "" {
+ cert, err := tls.LoadX509KeyPair(*certificate, *certificate)
+ if err != nil {
+ fmt.Fprintf(os.Stderr, "%s\n", err)
+ os.Exit(1)
+ }
+ b.TLSConfig.Certificates = append(b.TLSConfig.Certificates, cert)
+ }
+
+ b.Ui = uiterm.New(&b)
+ b.Ui.Run()
+}