Documentation ¶
Overview ¶
Package osutil provides operating system-specific path information, and other utility functions.
Index ¶
- Variables
- func AddSecretRingFlag()
- func CPUUsage() time.Duration
- func CacheDir() string
- func CamliBlobRoot() string
- func CamliConfigDir() string
- func CamliVarDir() string
- func DefaultLetsEncryptCache() string
- func DefaultSecretRingFile() string
- func DefaultTLSCert() string
- func DefaultTLSKey() string
- func DieOnParentDeath()
- func DirExists(dir string) bool
- func ExplicitSecretRingFile() (string, bool)
- func GoPackagePath(pkg string) (path string, err error)
- func HasSecretRingFlag() bool
- func HomeDir() string
- func LookPathGopath(binName string) (string, error)
- func MaxFD() (uint64, error)
- func MemUsage() int64
- func Mkfifo(path string, mode uint32) error
- func Mksocket(path string) error
- func NewJSONConfigParser() *jsonconfig.ConfigParser
- func OpenURL(url string) error
- func RegisterConfigDirFunc(f func() string)
- func RegisterLetsEncryptCacheFunc(f func() string)
- func RestartProcess(arg ...string) error
- func SecretRingFile() string
- func SelfPath() (string, error)
- func UserClientConfigPath() string
- func UserServerConfigPath() string
- func Username() string
Constants ¶
This section is empty.
Variables ¶
var ErrNotSupported = errors.New("operation not supported")
ErrNotSupported is returned by functions (like Mkfifo and Mksocket) when the underlying operating system or environment doesn't support the operation.
Functions ¶
func AddSecretRingFlag ¶
func AddSecretRingFlag()
AddSecretRingFlag registers the "secret-keyring" flag, accessible via ExplicitSecretRingFile.
func CPUUsage ¶
CPUUsage returns how much cumulative user CPU time the process has used. On unsupported operating systems, it returns zero.
func CamliBlobRoot ¶
func CamliBlobRoot() string
func CamliConfigDir ¶
func CamliConfigDir() string
func CamliVarDir ¶
func CamliVarDir() string
func DefaultLetsEncryptCache ¶
func DefaultLetsEncryptCache() string
DefaultLetsEncryptCache returns the path to the default Let's Encrypt cache directory (or file, depending on the ACME implementation).
func DefaultSecretRingFile ¶
func DefaultSecretRingFile() string
DefaultSecretRingFile returns the path to the default GPG secret keyring. It is not influenced by any flag or CAMLI* env var.
func DefaultTLSCert ¶
func DefaultTLSCert() string
DefaultTLSCert returns the path to the default TLS certificate file that is used (creating if necessary) when TLS is specified without the cert file.
func DefaultTLSKey ¶
func DefaultTLSKey() string
DefaultTLSKey returns the path to the default TLS key file that is used (creating if necessary) when TLS is specified without the key file.
func DieOnParentDeath ¶
func DieOnParentDeath()
DieOnParentDeath starts a goroutine that regularly checks that the current process can find its parent, and calls os.Exit(0) as soon as it cannot.
func DirExists ¶
DirExists reports whether dir exists. Errors are ignored and are reported as false.
func ExplicitSecretRingFile ¶
ExplicitSecretRingFile returns the path to the user's GPG secret ring file and true if it was ever set through the --secret-keyring flag or the CAMLI_SECRET_RING var. It returns "", false otherwise. Use of this function requires the program to call AddSecretRingFlag, and before flag.Parse is called.
func GoPackagePath ¶
GoPackagePath returns the path to the provided Go package's source directory. pkg may be a path prefix without any *.go files. The error is os.ErrNotExist if GOPATH is unset.
func HasSecretRingFlag ¶
func HasSecretRingFlag() bool
HasSecretRingFlag reports whether the "secret-keywring" command-line flag was registered. If so, it is safe to use ExplicitSecretRingFile.
func HomeDir ¶
func HomeDir() string
HomeDir returns the path to the user's home directory. It returns the empty string if the value isn't known.
func LookPathGopath ¶
LookPathGopath uses exec.LookPath to find binName, and then falls back to looking in $GOPATH/bin.
func MaxFD ¶
MaxFD returns the maximum number of open file descriptors allowed. It returns ErrNotSupported on unsupported systems.
func MemUsage ¶
func MemUsage() int64
MemUsage returns the number of bytes used by the process. On unsupported operating systems, it returns zero.
func Mkfifo ¶
Mkfifo creates a FIFO file named path. It returns ErrNotSupported on unsupported systems.
func Mksocket ¶
Mksocket creates a socket file (a Unix Domain Socket) named path. It returns ErrNotSupported on unsupported systems.
func NewJSONConfigParser ¶
func NewJSONConfigParser() *jsonconfig.ConfigParser
NewJSONConfigParser returns a jsonconfig.ConfigParser with its IncludeDirs set with CamliConfigDir and the contents of CAMLI_INCLUDE_PATH.
func RegisterConfigDirFunc ¶
func RegisterConfigDirFunc(f func() string)
RegisterConfigDirFunc registers a func f to return the Perkeep configuration directory. It may skip by returning the empty string.
func RegisterLetsEncryptCacheFunc ¶
func RegisterLetsEncryptCacheFunc(f func() string)
RegisterLetsEncryptCacheFunc registers a func f to return the path to the default Let's Encrypt cache. It may skip by returning the empty string.
func RestartProcess ¶
RestartProcess restarts the process with the given arguments, if any, replacing the original process's arguments. It defaults to os.Args otherwise. It returns an error if things couldn't be restarted. On success, this function never returns because the process becomes the new process.
func SecretRingFile ¶
func SecretRingFile() string
SecretRingFile returns the path to the user's GPG secret ring file. The value comes from either the --secret-keyring flag (if previously registered with AddSecretRingFlag), or the CAMLI_SECRET_RING environment variable, or the operating system default location.
func SelfPath ¶
SelfPath returns the path of the executable for the currently running process. At least on linux, the returned path is a symlink to the actual executable.
func UserClientConfigPath ¶
func UserClientConfigPath() string
func UserServerConfigPath ¶
func UserServerConfigPath() string
Types ¶
This section is empty.