diff --git a/README.md b/README.md index 9d7237b..835212b 100644 --- a/README.md +++ b/README.md @@ -56,7 +56,10 @@ Ctrl-D Scroll down half a screen ### config.ini -* Stored at $HOME/.min/config.ini +* Stored in your operating system's default config location under .min, e.g. + * Linux: $HOME/config/.min/config.ini + * Mac: ~/Library/Application Support/.min/config.ini + * Windows: %AppData%/.min/config.ini * Consists of key/value pairs (e.g. "width=80") * Contains previously accepted server certificates * Contains links to client certificates, stored in the same directory diff --git a/main.go b/main.go index 26c7478..15c9897 100644 --- a/main.go +++ b/main.go @@ -52,8 +52,8 @@ func (cc ClientCertPrefix) Save(cert, key []byte) error { } var configPath = func() string { - home, _ := os.UserHomeDir() - return path.Join(home, ".min") + configPath, _ := os.UserConfigDir() + return path.Join(configPath, ".min") }() type Config struct { @@ -76,7 +76,6 @@ func (c *Config) Save() error { fmt.Fprintf(b, "hostcert/%v=%v\n", host, cert) } fn := path.Join(configPath, "config.ini") - os.MkdirAll(path.Dir(fn), os.ModePerm) return atomic.WriteFile(fn, b) } @@ -88,6 +87,7 @@ func NewConfig() (c *Config, err error) { HostCertificates: map[string]string{}, ClientCertPrefixes: map[ClientCertPrefix]struct{}{}, } + os.MkdirAll(configPath, os.ModePerm) lines, err := readLines(path.Join(configPath, "config.ini")) if err != nil { return