summaryrefslogtreecommitdiffstats
path: root/vendor/github.com/OpenPeeDeeP/xdg/xdg.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/OpenPeeDeeP/xdg/xdg.go')
-rw-r--r--vendor/github.com/OpenPeeDeeP/xdg/xdg.go163
1 files changed, 0 insertions, 163 deletions
diff --git a/vendor/github.com/OpenPeeDeeP/xdg/xdg.go b/vendor/github.com/OpenPeeDeeP/xdg/xdg.go
deleted file mode 100644
index bb81060b6..000000000
--- a/vendor/github.com/OpenPeeDeeP/xdg/xdg.go
+++ /dev/null
@@ -1,163 +0,0 @@
-// Copyright (c) 2017, OpenPeeDeeP. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// Package xdg impelements the XDG standard for application file locations.
-package xdg
-
-import (
- "os"
- "path/filepath"
- "strings"
-)
-
-var defaulter xdgDefaulter = new(osDefaulter)
-
-type xdgDefaulter interface {
- defaultDataHome() string
- defaultDataDirs() []string
- defaultConfigHome() string
- defaultConfigDirs() []string
- defaultCacheHome() string
-}
-
-type osDefaulter struct {
-}
-
-//This method is used in the testing suit
-// nolint: deadcode
-func setDefaulter(def xdgDefaulter) {
- defaulter = def
-}
-
-// XDG is information about the currently running application
-type XDG struct {
- Vendor string
- Application string
-}
-
-// New returns an instance of XDG that is used to grab files for application use
-func New(vendor, application string) *XDG {
- return &XDG{
- Vendor: vendor,
- Application: application,
- }
-}
-
-// DataHome returns the location that should be used for user specific data files for this specific application
-func (x *XDG) DataHome() string {
- return filepath.Join(DataHome(), x.Vendor, x.Application)
-}
-
-// DataDirs returns a list of locations that should be used for system wide data files for this specific application
-func (x *XDG) DataDirs() []string {
- dataDirs := DataDirs()
- for i, dir := range dataDirs {
- dataDirs[i] = filepath.Join(dir, x.Vendor, x.Application)
- }
- return dataDirs
-}
-
-// ConfigHome returns the location that should be used for user specific config files for this specific application
-func (x *XDG) ConfigHome() string {
- return filepath.Join(ConfigHome(), x.Vendor, x.Application)
-}
-
-// ConfigDirs returns a list of locations that should be used for system wide config files for this specific application
-func (x *XDG) ConfigDirs() []string {
- configDirs := ConfigDirs()
- for i, dir := range configDirs {
- configDirs[i] = filepath.Join(dir, x.Vendor, x.Application)
- }
- return configDirs
-}
-
-// CacheHome returns the location that should be used for application cache files for this specific application
-func (x *XDG) CacheHome() string {
- return filepath.Join(CacheHome(), x.Vendor, x.Application)
-}
-
-// QueryData looks for the given filename in XDG paths for data files.
-// Returns an empty string if one was not found.
-func (x *XDG) QueryData(filename string) string {
- dirs := x.DataDirs()
- dirs = append([]string{x.DataHome()}, dirs...)
- return returnExist(filename, dirs)
-}
-
-// QueryConfig looks for the given filename in XDG paths for config files.
-// Returns an empty string if one was not found.
-func (x *XDG) QueryConfig(filename string) string {
- dirs := x.ConfigDirs()
- dirs = append([]string{x.ConfigHome()}, dirs...)
- return returnExist(filename, dirs)
-}
-
-// QueryCache looks for the given filename in XDG paths for cache files.
-// Returns an empty string if one was not found.
-func (x *XDG) QueryCache(filename string) string {
- return returnExist(filename, []string{x.CacheHome()})
-}
-
-func returnExist(filename string, dirs []string) string {
- for _, dir := range dirs {
- _, err := os.Stat(filepath.Join(dir, filename))
- if (err != nil && os.IsExist(err)) || err == nil {
- return filepath.Join(dir, filename)
- }
- }
- return ""
-}
-
-// DataHome returns the location that should be used for user specific data files
-func DataHome() string {
- dataHome := os.Getenv("XDG_DATA_HOME")
- if dataHome == "" {
- dataHome = defaulter.defaultDataHome()
- }
- return dataHome
-}
-
-// DataDirs returns a list of locations that should be used for system wide data files
-func DataDirs() []string {
- var dataDirs []string
- dataDirsStr := os.Getenv("XDG_DATA_DIRS")
- if dataDirsStr != "" {
- dataDirs = strings.Split(dataDirsStr, string(os.PathListSeparator))
- }
- if len(dataDirs) == 0 {
- dataDirs = defaulter.defaultDataDirs()
- }
- return dataDirs
-}
-
-// ConfigHome returns the location that should be used for user specific config files
-func ConfigHome() string {
- configHome := os.Getenv("XDG_CONFIG_HOME")
- if configHome == "" {
- configHome = defaulter.defaultConfigHome()
- }
- return configHome
-}
-
-// ConfigDirs returns a list of locations that should be used for system wide config files
-func ConfigDirs() []string {
- var configDirs []string
- configDirsStr := os.Getenv("XDG_CONFIG_DIRS")
- if configDirsStr != "" {
- configDirs = strings.Split(configDirsStr, string(os.PathListSeparator))
- }
- if len(configDirs) == 0 {
- configDirs = defaulter.defaultConfigDirs()
- }
- return configDirs
-}
-
-// CacheHome returns the location that should be used for application cache files
-func CacheHome() string {
- cacheHome := os.Getenv("XDG_CACHE_HOME")
- if cacheHome == "" {
- cacheHome = defaulter.defaultCacheHome()
- }
- return cacheHome
-}