Skip to content
This repository has been archived by the owner on May 11, 2020. It is now read-only.
/ go-appdir Public archive

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

License

Notifications You must be signed in to change notification settings

ProtonMail/go-appdir

Repository files navigation

go-appdir

GoDoc

Minimalistic 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/ProtonMail/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

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

Topics

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages