Documentation ¶
Overview ¶
Package parlos provides simplified functions for home-directory and hostname.
Index ¶
- Constants
- func AppendToFile(filename string) (osFile *os.File, err error)
- func ExecDir() (dir string)
- func Exit(code int, err error)
- func Exit0()
- func Exit1(err error)
- func Exit1OneLine(err error)
- func HomeDir(relPaths string) (dir string)
- func OsExit(code int)
- func ParentDir() (dir string)
- func ShortHostname() (host string)
- func UserHome() (homeDir string, err error)
- func UserHomeDir() (homeDir string)
- type AppDirectory
Constants ¶
const ( StatusCodeErr = 1 StatusCodeUsage = 2 )
const ( // when created, output file permissions is user-read/write FilePermUrw os.FileMode = 0o600 // rw- --- --- )
Variables ¶
This section is empty.
Functions ¶
func AppendToFile ¶ added in v0.4.114
func ExecDir ¶ added in v0.4.24
func ExecDir() (dir string)
ExecDir gets abolute path to directory where executable is located
func Exit1 ¶
func Exit1(err error)
Exit1 terminate the command echoing a failure to stderr and returning status code 1
func Exit1OneLine ¶
func Exit1OneLine(err error)
Exit1OneLine terminate the command echoing to stderr returning status code 1
func HomeDir ¶
HomeDir creates levels of directories in users’s home. if directories do not exist, they are created with permissions u=rwx. This should never fail, when it does, panic is thrown
func ParentDir ¶ added in v0.4.24
func ParentDir() (dir string)
ParentDir gets absolute path of executable parent directory
func ShortHostname ¶
func ShortHostname() (host string)
ShortHostname gets hostname without domain part This should never fail, when it does, panic is thrown
func UserHome ¶ added in v0.4.127
UserHome obtains the absolute path to the process owning user’s home directory
- does not rely on environment
func UserHomeDir ¶
func UserHomeDir() (homeDir string)
UserHomeDir obtains the absolute path to the process owning user’s home directory
- does not rely on environment
- should never fail. if it does, panic is thrown
Types ¶
type AppDirectory ¶ added in v0.4.24
type AppDirectory struct { // app name like “myapp” App string // contains filtered or unexported fields }
AppDirectory manages a per-user writable app-specific directory
func NewAppDir ¶ added in v0.4.24
func NewAppDir(appName string) (appd *AppDirectory)
NewAppDir returns a writable directory object in the user’s home directory
- appName: application name like “myapp” Unicode letters and digits
- directory is “~/.local/share/[appName]”
- parent directory is based on the running process’ owner
- does not rely on environment variables
Usage:
var appDir = NewAppDir("myapp") if err = appDir.EnsureDir(); err != nil {… var knownToExistAbsCleanNoSymlinksNeverErrors = appDir.Directory()
func (*AppDirectory) Directory ¶ added in v0.4.24
func (d *AppDirectory) Directory() (abs string)
best-effort single-value absolute clean possibly symlink-free directory
- returns an absolute path whether the directory exists or not
- if directory exists, absolute clean symlink-free, otherwise absolute clean
- Directory may panic from errors that are returned by AppDirectory.EnsureDir or AppDirectory.Path. To avoid panics, invoke those methods first.
Usage:
var dir = NewAppDir("myapp").Directory()
func (*AppDirectory) EnsureDir ¶ added in v0.4.151
func (d *AppDirectory) EnsureDir() (err error)
EnsureDir ensures the directory exists
func (*AppDirectory) Path ¶ added in v0.4.127
func (d *AppDirectory) Path() (abs string, isNotExist bool, err error)
Path returns best-effort absolute clean path
- if the app-directory exists, abs is also symlink-free
- outcomes:
- — err: nil: abs is absolute clean symlink-free, app directory exists
- — isNotExist: true, err: non-nil: app directory does not eixst. abs is absolute clean. err is errno ENOENT
- — err: non-nil, isNotExist: false: some error
- —
- macOS: “/Users/user/.local/share/myapp”
- Linux: “/home/user/.local/share/myapp”
- note: symlinks can only be evaled if a path exists