+
+// ConfigRootDir return the root directory where xds server save all config files
+func ConfigRootDir() string {
+ root := "$HOME"
+ if usr, err := user.Current(); err == nil {
+ root = usr.HomeDir
+ }
+
+ // Default $HOME/.xds/server but may be changed by an env variable
+ if envVar, envDef := os.LookupEnv("XDS_SERVER_ROOT_CFG_DIR"); envDef {
+ root = envVar
+ }
+
+ return path.Join(root, "/.xds/server")
+}
+
+// WorkspaceRootDir return the path on server side where user xds-workspace dir is accessible
+func WorkspaceRootDir() string {
+ // May be overloaded by an env variable
+ if envVar, envDef := os.LookupEnv("XDS_SERVER_WORKSPACE_DIR"); envDef {
+ return envVar
+ }
+
+ home := "${HOME}"
+ if usr, err := user.Current(); err == nil {
+ home = usr.HomeDir
+ }
+
+ // Default value $HOME/xds-workspace
+ return path.Join(home, "xds-workspace")
+}