github.com/richardwilkes/toolbox@v1.121.0/xio/fs/paths/paths_linux.go (about) 1 // Copyright (c) 2016-2024 by Richard A. Wilkes. All rights reserved. 2 // 3 // This Source Code Form is subject to the terms of the Mozilla Public 4 // License, version 2.0. If a copy of the MPL was not distributed with 5 // this file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 // 7 // This Source Code Form is "Incompatible With Secondary Licenses", as 8 // defined by the Mozilla Public License, version 2.0. 9 10 package paths 11 12 import ( 13 "os" 14 "path/filepath" 15 16 "github.com/richardwilkes/toolbox/cmdline" 17 ) 18 19 // AppDataDir returns the application data directory. 20 func AppDataDir() string { 21 path := os.Getenv("XDG_DATA_HOME") 22 if path == "" { 23 path = filepath.Join(HomeDir(), ".local", "share") 24 } 25 if cmdline.AppIdentifier != "" { 26 path = filepath.Join(path, cmdline.AppIdentifier) 27 } 28 return path 29 } 30 31 // AppLogDir returns the application log directory. 32 func AppLogDir() string { 33 return filepath.Join(AppDataDir(), "Logs") 34 } 35 36 // FontDirs returns the standard font directories, in order of priority. 37 func FontDirs() []string { 38 return []string{filepath.Join(HomeDir(), ".fonts"), "/usr/local/share/fonts", "/usr/share/fonts"} 39 }