]> git.0d.be Git - barnard.git/blobdiff - cmd/barnard/main.go
added server password support as command line arguement (#13)
[barnard.git] / cmd / barnard / main.go
index 8b6b022718656f43434d8f62c11aaf978a740576..767269f30262f2dba80578b7be3b50cd6305c4e3 100644 (file)
@@ -9,8 +9,6 @@ import (
        "github.com/layeh/barnard"
        "github.com/layeh/barnard/uiterm"
        "github.com/layeh/gumble/gumble"
-       "github.com/layeh/gumble/gumbleutil"
-       "github.com/layeh/gumble/gumble_openal"
        _ "github.com/layeh/gumble/opus"
 )
 
@@ -18,49 +16,33 @@ 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.Barnard{}
-       b.Ui = uiterm.New(&b)
+       b := barnard.Barnard{
+               Config: gumble.NewConfig(),
+               Address: *server,
+       }
 
-       // Gumble
-       b.Config = gumble.NewConfig()
        b.Config.Username = *username
-       b.Config.Address = *server
+       b.Config.Password = *password
+
        if *insecure {
-               b.Config.TLSConfig.InsecureSkipVerify = true
+               b.TLSConfig.InsecureSkipVerify = true
        }
        if *certificate != "" {
-               if cert, err := tls.LoadX509KeyPair(*certificate, *certificate); err != nil {
+               cert, err := tls.LoadX509KeyPair(*certificate, *certificate)
+               if err != nil {
                        fmt.Fprintf(os.Stderr, "%s\n", err)
                        os.Exit(1)
-               } else {
-                       b.Config.TLSConfig.Certificates = []tls.Certificate{cert}
                }
+               b.TLSConfig.Certificates = append(b.TLSConfig.Certificates, cert)
        }
 
-       b.Client = gumble.NewClient(b.Config)
-       b.Client.Attach(gumbleutil.AutoBitrate)
-       b.Client.Attach(&b)
-       // Audio
-       if os.Getenv("ALSOFT_LOGLEVEL") == "" {
-               os.Setenv("ALSOFT_LOGLEVEL", "0")
-       }
-       if stream, err := gumble_openal.New(b.Client); err != nil {
-               fmt.Fprintf(os.Stderr, "%s\n", err)
-               os.Exit(1)
-       } else {
-               b.Stream = stream
-       }
-
-       if err := b.Client.Connect(); err != nil {
-               fmt.Fprintf(os.Stderr, "%s\n", err)
-               os.Exit(1)
-       }
-
+       b.Ui = uiterm.New(&b)
        b.Ui.Run()
 }