2023-01-30 16:27:06 +03:00
|
|
|
package mox
|
|
|
|
|
|
|
|
import (
|
|
|
|
"path/filepath"
|
|
|
|
)
|
|
|
|
|
|
|
|
// ConfigDirPath returns the path to "f". Either f itself when absolute, or
|
2024-12-03 00:03:18 +03:00
|
|
|
// interpreted relative to the directory of the static configuration file
|
|
|
|
// (mox.conf).
|
2023-01-30 16:27:06 +03:00
|
|
|
func ConfigDirPath(f string) string {
|
|
|
|
return configDirPath(ConfigStaticPath, f)
|
|
|
|
}
|
|
|
|
|
2024-12-03 00:03:18 +03:00
|
|
|
// Like ConfigDirPath, but relative paths are interpreted relative to the directory
|
|
|
|
// of the dynamic configuration file (domains.conf).
|
|
|
|
func ConfigDynamicDirPath(f string) string {
|
|
|
|
return configDirPath(ConfigDynamicPath, f)
|
|
|
|
}
|
|
|
|
|
2023-01-30 16:27:06 +03:00
|
|
|
// DataDirPath returns to the path to "f". Either f itself when absolute, or
|
|
|
|
// interpreted relative to the data directory from the currently active
|
|
|
|
// configuration.
|
|
|
|
func DataDirPath(f string) string {
|
|
|
|
return dataDirPath(ConfigStaticPath, Conf.Static.DataDir, f)
|
|
|
|
}
|
|
|
|
|
|
|
|
// return f interpreted relative to the directory of the config dir. f is returned
|
|
|
|
// unchanged when absolute.
|
|
|
|
func configDirPath(configFile, f string) string {
|
|
|
|
if filepath.IsAbs(f) {
|
|
|
|
return f
|
|
|
|
}
|
|
|
|
return filepath.Join(filepath.Dir(configFile), f)
|
|
|
|
}
|
|
|
|
|
|
|
|
// return f interpreted relative to the data directory that is interpreted relative
|
|
|
|
// to the directory of the config dir. f is returned unchanged when absolute.
|
|
|
|
func dataDirPath(configFile, dataDir, f string) string {
|
|
|
|
if filepath.IsAbs(f) {
|
|
|
|
return f
|
|
|
|
}
|
|
|
|
return filepath.Join(configDirPath(configFile, dataDir), f)
|
|
|
|
}
|