Beispiel #1
0
func login() {
	usr, err := user.Current()
	if err != nil {
		log.Fatal(err)
	}
	d := fmt.Sprintf("%s/.qcli", usr.HomeDir)
	u, err := url.Parse(*addr)
	if err != nil {
		log.Fatal(err)
	}
	p := filepath.Join(usr.HomeDir, ".qcli", u.Host)
	if exists(p) {
		d, err := ioutil.ReadFile(p)
		if err != nil {
			log.Fatal(err)
		}
		cli, err = quimby.NewClient(*addr, quimby.Token(string(d)))
		if err != nil {
			log.Fatal(err)
		}
		if err := cli.GetNodes(); err != nil {
			os.Remove(p)
			login()
		}
	} else {
		if !exists(d) {
			if os.Mkdir(d, 0700); err != nil {
				log.Fatal(err)
			}
		}
		fmt.Printf("password: "******"tfa: ")
		fmt.Scanf("%s\n", &tfa)
		cli, err = quimby.NewClient(*addr)
		if err != nil {
			log.Fatal(err)
		}
		token, err := cli.Login(username, string(pw), tfa)
		if err != nil {
			log.Fatal(err)
		}
		if err := ioutil.WriteFile(p, []byte(token), 0700); err != nil {
			log.Fatal(err)
		}

		if err := cli.GetNodes(); err != nil {
			log.Fatal(err)
		}
	}
}
Beispiel #2
0
func main() {
	kingpin.Parse()
	cli, err = quimby.NewClient(*addr)
	if err != nil {
		log.Fatal(err)
	}

	login()
}