From 407de7388cbb76296b26a364b450a810fb443854 Mon Sep 17 00:00:00 2001 From: Dreamacro <305009791@qq.com> Date: Tue, 18 Jun 2019 20:55:26 +0800 Subject: [PATCH] Standardized: use recommend extension & forward compatibility before 1.0 --- README.md | 2 +- config/config.go | 17 ++++++++++++++++- config/initial.go | 2 +- constant/path.go | 2 +- 4 files changed, 19 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index f0cbf5e8..d3456818 100644 --- a/README.md +++ b/README.md @@ -64,7 +64,7 @@ If you have Docker installed, you can run clash directly using `docker-compose`. The default configuration directory is `$HOME/.config/clash` -The name of the configuration file is `config.yml` +The name of the configuration file is `config.yaml` If you want to use another directory, you can use `-d` to control the configuration directory diff --git a/config/config.go b/config/config.go index 9ecf6c39..e89e934d 100644 --- a/config/config.go +++ b/config/config.go @@ -87,11 +87,26 @@ type rawConfig struct { Rule []string `yaml:"Rule"` } +// forward compatibility before 1.0 +func readRawConfig(path string) ([]byte, error) { + data, err := ioutil.ReadFile(path) + if err == nil && len(data) != 0 { + return data, nil + } + + if filepath.Ext(path) != ".yaml" { + return nil, err + } + + path = path[:len(path)-5] + ".yml" + return ioutil.ReadFile(path) +} + func readConfig(path string) (*rawConfig, error) { if _, err := os.Stat(path); os.IsNotExist(err) { return nil, err } - data, err := ioutil.ReadFile(path) + data, err := readRawConfig(path) if err != nil { return nil, err } diff --git a/config/initial.go b/config/initial.go index 8f198b7a..cf61d1bc 100644 --- a/config/initial.go +++ b/config/initial.go @@ -63,7 +63,7 @@ func Init(dir string) error { } } - // initial config.yml + // initial config.yaml if _, err := os.Stat(C.Path.Config()); os.IsNotExist(err) { log.Info("Can't find config, create an empty file") os.OpenFile(C.Path.Config(), os.O_CREATE|os.O_WRONLY, 0644) diff --git a/constant/path.go b/constant/path.go index 32c67aad..bfe158a1 100644 --- a/constant/path.go +++ b/constant/path.go @@ -42,7 +42,7 @@ func (p *path) HomeDir() string { } func (p *path) Config() string { - return P.Join(p.homedir, "config.yml") + return P.Join(p.homedir, "config.yaml") } func (p *path) MMDB() string {