Cleanup and improvements
[src/xds/xds-server.git] / lib / xdsconfig / fileconfig.go
index a0724af..39560a4 100644 (file)
@@ -16,6 +16,8 @@ const (
        ConfigDir = ".xds-server"
        // GlobalConfigFilename Global config filename
        GlobalConfigFilename = "config.json"
+       // ServerDataFilename Server data filename
+       ServerDataFilename = "server-data.xml"
        // FoldersConfigFilename Folders config filename
        FoldersConfigFilename = "server-config_folders.xml"
 )
@@ -59,11 +61,12 @@ func readGlobalConfig(c *Config, confFile string) error {
        searchIn = append(searchIn, "/etc/xds-server/config.json")
 
        exePath := os.Args[0]
-       exeAbsPath, err := filepath.Abs(os.Args[0])
+       ee, _ := os.Executable()
+       exeAbsPath, err := filepath.Abs(ee)
        if err == nil {
                exePath, err = filepath.EvalSymlinks(exeAbsPath)
                if err == nil {
-                       exePath = filepath.Dir(exePath)
+                       exePath = filepath.Dir(ee)
                } else {
                        exePath = filepath.Dir(exeAbsPath)
                }
@@ -145,11 +148,20 @@ func readGlobalConfig(c *Config, confFile string) error {
        return nil
 }
 
-// FoldersConfigFilenameGet
-func FoldersConfigFilenameGet() (string, error) {
+func configFilenameGet(cfgFile string) (string, error) {
        usr, err := user.Current()
        if err != nil {
                return "", err
        }
-       return path.Join(usr.HomeDir, ConfigDir, FoldersConfigFilename), nil
+       return path.Join(usr.HomeDir, ConfigDir, cfgFile), nil
+}
+
+// FoldersConfigFilenameGet
+func FoldersConfigFilenameGet() (string, error) {
+       return configFilenameGet(FoldersConfigFilename)
+}
+
+// ServerDataFilenameGet
+func ServerDataFilenameGet() (string, error) {
+       return configFilenameGet(ServerDataFilename)
 }