package lib import ( "github.com/spf13/viper" ) var singleClient *Client func GetClient() (*Client, error) { if singleClient != nil { return singleClient, nil } hostname := viper.GetString("hostname") username := viper.GetString("username") password := viper.GetString("password") var err error singleClient, err = ConnectImap(hostname, username, password) if err != nil { return nil, err } return singleClient, nil }