func Read() (*Config, error) {
	var c *Config

	// Read json file
	p := configPath()
	if raw, err := ioutil.ReadFile(p); err == nil {
		err = json.Unmarshal(raw, &c)
		if err != nil {
			return nil, err
		}
	} else if os.IsNotExist(err) {
		// File doesn't exist, so create a new config
		fmt.Println("no config detected at %q. Generating new config...", p)
		c = &Config{}
	} else {
		return nil, fmt.Errorf("fatal: could not read config at %q: %v", p, err)
	}
	if c.UserID == "" {
		fmt.Printf("No UserID present in config. Generating new UserID and "+
			"updating config at %s\n", p)
		uuid, err := uuid.NewV4()
		if err != nil {
			return nil, err
		}
		c.UserID = uuid.String()
		if err := c.Write(); err != nil {
			return nil, err
		}
	}
	return c, nil
}
func Read() (*Config, error) {
	var c *Config

	
	p := configPath()
	if raw, err := ioutil.ReadFile(p); err == nil {
		err = json.Unmarshal(raw, &c)
		if err != nil {
			return nil, err
		}
	} else if os.IsNotExist(err) {
		
		fmt.Println("no config detected at %q. Generating new config...", p)
		c = &Config{}
	} else {
		return nil, fmt.Errorf("fatal: could not read config at %q: %v", p, err)
	}
	if c.UserID == "" {
		fmt.Printf("No UserID present in config. Generating new UserID and "+
			"updating config at %s\n", p)
		uuid, err := uuid.NewV4()
		if err != nil {
			return nil, err
		}
		c.UserID = uuid.String()
		if err := c.Write(); err != nil {
			return nil, err
		}
	}
	return c, nil
}
func Read ( ) ( * Config , error ) { var c * Config // Read json file p := configPath ( ) if raw , err := ioutil . ReadFile ( p ) ; err == nil { err = json . Unmarshal ( raw , & c ) if err != nil { return nil , err } } else if os . IsNotExist ( err ) { // File doesn't exist, so create a new config fmt . Println ( " " , p ) c = & Config { } } else { return nil , fmt . Errorf ( " " , p , err ) } if c . UserID == " " { fmt . Printf ( " " + " \n " , p ) uuid , err := uuid . NewV4 ( ) if err != nil { return nil , err } c . UserID = uuid . String ( ) if err := c . Write ( ) ; err != nil { return nil , err } } return c , nil }
// Read loads the Pachyderm config on this machine.
// If an existing configuration cannot be found, it sets up the defaults. Read
// returns a nil Config if and only if it returns a non-nil error.
Read loads the Pachyderm config on this machine . If an existing configuration cannot be found it sets up the defaults . Read returns a nil Config if and only if it returns a non - nil error .