Categorygithub.com/emersion/go-appdir
modulepackage
1.1.2
Repository: https://github.com/emersion/go-appdir.git
Documentation: pkg.go.dev

# README

go-appdir

GoDoc

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

PlatformWindowsLinux/BSDsmacOS
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

# Functions

New creates a new App with the provided name.

# Interfaces

Dirs requests application directories paths.