Skip to content

Go package to get application directories such as config and cache

License

Notifications You must be signed in to change notification settings

emersion/go-appdir

Repository files navigation

go-appdir

GoDoc

Go package to get application directories such as config and cache.

Platform Windows Linux/BSDs macOS
User-specific config %APPDATA% (C:\Users\%USERNAME%\AppData\Roaming) $XDG_CONFIG_HOME ($HOME/.config) $HOME/Library/Application Support
User-specific cache %LOCALAPPDATA% (C:\Users\%USERNAME%\AppData\Local) $XDG_CACHE_HOME ($HOME/.cache) $HOME/Library/Caches
User-specific data %LOCALAPPDATA% (C:\Users\%USERNAME%\AppData\Local) $XDG_DATA_HOME ($HOME/.local/share) $HOME/Library/Application Support
User-specific logs %LOCALAPPDATA% (C:\Users\%USERNAME%\AppData\Local) $XDG_CACHE_HOME/<name>/logs $HOME/Library/Logs

Inspired by configdir.

Usage

package main

import (
	"os"
	"path/filepath"

	"github.com/emersion/go-appdir"
)

func main() {
	// Get directories for our app
	dirs := appdir.New("my-awesome-app")

	// Get user-specific config dir
	p := dirs.UserConfig()

	// Create our app config dir
	if err := os.MkdirAll(p, 0755); err != nil {
		panic(err)
	}

	// Now we can use it
	f, err := os.Create(filepath.Join(p, "config-file"))
	if err != nil {
		panic(err)
	}
	defer f.Close()

	f.Write([]byte("<3"))
}

License

MIT

About

Go package to get application directories such as config and cache

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages