Refactor auth: add token and store implementations (#1230)
* Refactor auth: add token and memory implementations * Fix typo * Remove memory auth (implemented already by the store implementation), revert default to noop * Add grpc header * Global Config * config/global => util/config * Rename package to remove confict * Tweak * Improve Error Handling
This commit is contained in:
		
							
								
								
									
										88
									
								
								util/config/config.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										88
									
								
								util/config/config.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,88 @@ | ||||
| package config | ||||
|  | ||||
| import ( | ||||
| 	"io/ioutil" | ||||
| 	"os" | ||||
| 	"os/user" | ||||
| 	"path/filepath" | ||||
|  | ||||
| 	conf "github.com/micro/go-micro/v2/config" | ||||
| 	"github.com/micro/go-micro/v2/config/source/file" | ||||
| ) | ||||
|  | ||||
| // FileName for global micro config | ||||
| const FileName = ".micro" | ||||
|  | ||||
| // Get a value from the .micro file | ||||
| func Get(key string) (string, error) { | ||||
| 	// get the filepath | ||||
| 	fp, err := filePath() | ||||
| 	if err != nil { | ||||
| 		return "", err | ||||
| 	} | ||||
|  | ||||
| 	// create a new config | ||||
| 	c, err := conf.NewConfig( | ||||
| 		conf.WithSource( | ||||
| 			file.NewSource( | ||||
| 				file.WithPath(fp), | ||||
| 			), | ||||
| 		), | ||||
| 	) | ||||
| 	if err != nil { | ||||
| 		return "", err | ||||
| 	} | ||||
|  | ||||
| 	// load the config | ||||
| 	if err := c.Load(); err != nil { | ||||
| 		return "", err | ||||
| 	} | ||||
|  | ||||
| 	// set a value | ||||
| 	return c.Get(key).String(""), nil | ||||
| } | ||||
|  | ||||
| // Set a value in the .micro file | ||||
| func Set(key, value string) error { | ||||
| 	// get the filepath | ||||
| 	fp, err := filePath() | ||||
| 	if err != nil { | ||||
| 		return err | ||||
| 	} | ||||
|  | ||||
| 	// write the file if it does not exist | ||||
| 	if _, err := os.Stat(fp); os.IsNotExist(err) { | ||||
| 		ioutil.WriteFile(fp, []byte{}, 0644) | ||||
| 	} | ||||
|  | ||||
| 	// create a new config | ||||
| 	c, err := conf.NewConfig( | ||||
| 		conf.WithSource( | ||||
| 			file.NewSource( | ||||
| 				file.WithPath(fp), | ||||
| 			), | ||||
| 		), | ||||
| 	) | ||||
| 	if err != nil { | ||||
| 		return err | ||||
| 	} | ||||
|  | ||||
| 	// load the config | ||||
| 	if err := c.Load(); err != nil { | ||||
| 		return err | ||||
| 	} | ||||
|  | ||||
| 	// set a value | ||||
| 	c.Set(value, key) | ||||
|  | ||||
| 	// write the file | ||||
| 	return ioutil.WriteFile(fp, c.Bytes(), 0644) | ||||
| } | ||||
|  | ||||
| func filePath() (string, error) { | ||||
| 	usr, err := user.Current() | ||||
| 	if err != nil { | ||||
| 		return "", err | ||||
| 	} | ||||
| 	return filepath.Join(usr.HomeDir, FileName), nil | ||||
| } | ||||
		Reference in New Issue
	
	Block a user