devops-works / binenv

One binary to rule them all. Manage all those pesky binaries (kubectl, helm, terraform, ...) easily.
MIT License
366 stars 44 forks source link

distributions.yaml put to unexpected location #241

Closed AXGKl closed 9 months ago

AXGKl commented 9 months ago

Hi, again.

distributions.yaml is put to "$HOME/.config" instead "$HOME/.config/binenv" when $XDG_ CONFIG_HOME is set - i.e. on a linux box nowadays to $HOME/.config.


// GetDefaultConfDir returns the config directory in usermode
func GetDefaultConfDir() (string, error) {
    var err error

    d := os.Getenv("XDG_CONFIG_HOME")
    if d == "" {
        d, err = homedir.Dir()
        if err != nil {
            return "", err
        }
        d += "/.config/binenv"
    }

    return d, nil
}

Should be imho return d+"/binenv" always (and d+="/.config" only), no?

PS: In the readme you write about XDG_CONFIG, a variable which I don't see even looked at, looking at the code

leucos commented 9 months ago

All your remarks are totally correct, thanks ! Would you like to send a PR ?

AXGKl commented 9 months ago

done but I have no go toolchain here, could not test => are you making sure those directories are created before writing the files?
And see my note, this is not backwards compat, just sayin ;-)

leucos commented 9 months ago

are you making sure those directories are created before writing the files?

yes

And see my note, this is not backwards compat, just sayin

yes, should not be a problem; distribution will be fetched automatically & cache will have to be updated with binenv update.

$ rm ~/.config/binenv/distributions.yaml; binenv -v  search kubectl
2023-09-28T06:27:05+02:00 DBG setting configuration bindir=/home/xxx/.binenv/
2023-09-28T06:27:05+02:00 DBG setting configuration linkdir=/home/xxx/.binenv/
2023-09-28T06:27:05+02:00 DBG setting configuration configdir=/home/xxx/.config/binenv
2023-09-28T06:27:05+02:00 DBG setting configuration cachedir=/home/xxx/.cache/binenv
2023-09-28T06:27:05+02:00 DBG final configuration bindir=/home/xxx/.binenv/ cachedir=/home/xxx/.cache/binenv configdir=/home/xxx/.config/binenv linkdir=/home/leucos/.binenv/
2023-09-28T06:27:05+02:00 INF updating distribution list
2023-09-28T06:27:05+02:00 DBG retrieving distribution list from https://raw.githubusercontent.com/devops-works/binenv/master/distributions/distributions.yaml