log_directory.go 639 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. package servicehost
  2. import (
  3. "os"
  4. "path/filepath"
  5. )
  6. func resolveLogDirectory(dir string, baseDir string) string {
  7. if dir == "" {
  8. return ""
  9. }
  10. if filepath.IsAbs(dir) {
  11. return dir
  12. }
  13. if baseDir == "" {
  14. return dir
  15. }
  16. return filepath.Join(baseDir, dir)
  17. }
  18. func executableDirectory() (string, error) {
  19. ex, err := os.Executable()
  20. if err != nil {
  21. return "", err
  22. }
  23. return filepath.Dir(ex), nil
  24. }
  25. func configuredServiceLogDirectory(dir string) (string, error) {
  26. if dir == "" {
  27. return "", nil
  28. }
  29. exeDir, err := executableDirectory()
  30. if err != nil {
  31. return "", err
  32. }
  33. return resolveLogDirectory(dir, exeDir), nil
  34. }