summaryrefslogtreecommitdiffstats
path: root/vendor/github.com/mattermost/rsc/google/main.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/mattermost/rsc/google/main.go')
-rw-r--r--vendor/github.com/mattermost/rsc/google/main.go181
1 files changed, 0 insertions, 181 deletions
diff --git a/vendor/github.com/mattermost/rsc/google/main.go b/vendor/github.com/mattermost/rsc/google/main.go
deleted file mode 100644
index b11a6eefb..000000000
--- a/vendor/github.com/mattermost/rsc/google/main.go
+++ /dev/null
@@ -1,181 +0,0 @@
-// Copyright 2011 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// TODO: Something about redialing.
-
-package google
-
-import (
- // "flag"
- "encoding/json"
- "fmt"
- "io/ioutil"
- "log"
- "net"
- "net/rpc"
- "os"
- "os/exec"
- "syscall"
- "time"
-)
-
-func Dir() string {
- dir := os.Getenv("HOME") + "/.goog"
- st, err := os.Stat(dir)
- if err != nil {
- if err := os.Mkdir(dir, 0700); err != nil {
- log.Fatal(err)
- }
- st, err = os.Stat(dir)
- if err != nil {
- log.Fatal(err)
- }
- }
- if !st.IsDir() {
- log.Fatalf("%s exists but is not a directory", dir)
- }
- if st.Mode()&0077 != 0 {
- log.Fatalf("%s exists but allows group or other permissions: %#o", dir, st.Mode()&0777)
- }
- return dir
-}
-
-func Dial() (*Client, error) {
- socket := Dir() + "/socket"
- c, err := net.Dial("unix", socket)
- if err == nil {
- return &Client{rpc.NewClient(c)}, nil
- }
- log.Print("starting server")
- os.Remove(socket)
- runServer()
- for i := 0; i < 50; i++ {
- c, err = net.Dial("unix", socket)
- if err == nil {
- return &Client{rpc.NewClient(c)}, nil
- }
- time.Sleep(200e6)
- if i == 0 {
- log.Print("waiting for server...")
- }
- }
- return nil, err
-}
-
-type Client struct {
- client *rpc.Client
-}
-
-type Empty struct{}
-
-func (g *Client) Ping() error {
- return g.client.Call("goog.Ping", &Empty{}, &Empty{})
-}
-
-func (g *Client) Accounts() ([]string, error) {
- var out []string
- if err := g.client.Call("goog.Accounts", &Empty{}, &out); err != nil {
- return nil, err
- }
- return out, nil
-}
-
-func runServer() {
- cmd := exec.Command("googleserver", "serve")
- cmd.SysProcAttr = &syscall.SysProcAttr{}
- if err := cmd.Start(); err != nil {
- log.Fatal(err)
- }
-}
-
-type Config struct {
- Account []*Account
-}
-
-type Account struct {
- Email string
- Password string
- Nick string
-}
-
-func (cfg *Config) AccountByEmail(email string) *Account {
- for _, a := range cfg.Account {
- if a.Email == email {
- return a
- }
- }
- return nil
-}
-
-var Cfg Config
-
-func ReadConfig() {
- file := Dir() + "/config"
- st, err := os.Stat(file)
- if err != nil {
- return
- }
- if st.Mode()&0077 != 0 {
- log.Fatalf("%s exists but allows group or other permissions: %#o", file, st.Mode()&0777)
- }
- data, err := ioutil.ReadFile(file)
- if err != nil {
- log.Fatal(err)
- }
- Cfg = Config{}
- if err := json.Unmarshal(data, &Cfg); err != nil {
- log.Fatal(err)
- }
-}
-
-func WriteConfig() {
- file := Dir() + "/config"
- st, err := os.Stat(file)
- if err != nil {
- if err := ioutil.WriteFile(file, nil, 0600); err != nil {
- log.Fatal(err)
- }
- st, err = os.Stat(file)
- if err != nil {
- log.Fatal(err)
- }
- }
- if st.Mode()&0077 != 0 {
- log.Fatalf("%s exists but allows group or other permissions: %#o", file, st.Mode()&0777)
- }
- data, err := json.MarshalIndent(&Cfg, "", "\t")
- if err != nil {
- log.Fatal(err)
- }
- if err := ioutil.WriteFile(file, data, 0600); err != nil {
- log.Fatal(err)
- }
- st, err = os.Stat(file)
- if err != nil {
- log.Fatal(err)
- }
- if st.Mode()&0077 != 0 {
- log.Fatalf("%s allows group or other permissions after writing: %#o", file, st.Mode()&0777)
- }
-}
-
-func Acct(name string) Account {
- ReadConfig()
- if name == "" {
- if len(Cfg.Account) == 0 {
- fmt.Fprintf(os.Stderr, "no accounts configured\n")
- os.Exit(2)
- }
- return *Cfg.Account[0]
- }
-
- for _, a := range Cfg.Account {
- if a.Email == name || a.Nick == name {
- return *a
- }
- }
- fmt.Fprintf(os.Stderr, "cannot find account %#q", name)
- os.Exit(2)
- panic("not reached")
-}