text: package dbus
  
  import (
  	"os"
  	"sync"
  )
  
  var (
  	homeDir     string
  	homeDirLock sync.Mutex
  )
  
  func getHomeDir() string {
  	homeDirLock.Lock()
  	defer homeDirLock.Unlock()
  
  	if homeDir != "" {
  		return homeDir
  	}
  
  	homeDir = os.Getenv("HOME")
  	if homeDir != "" {
  		return homeDir
  	}
  
  	homeDir = lookupHomeDir()
  	return homeDir
  }
  