Standardized XDS config file name and location.
[src/xds/xds-server.git] / lib / xdsconfig / config.go
index 0fc1346..59cf394 100644 (file)
@@ -1,3 +1,20 @@
+/*
+ * Copyright (C) 2017 "IoT.bzh"
+ * Author Sebastien Douheret <sebastien@iot.bzh>
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
 package xdsconfig
 
 import (
@@ -9,16 +26,13 @@ import (
        "github.com/Sirupsen/logrus"
        "github.com/codegangsta/cli"
        common "github.com/iotbzh/xds-common/golib"
+       "github.com/iotbzh/xds-server/lib/xsapiv1"
 )
 
 // Config parameters (json format) of /config command
 type Config struct {
-       ServerUID        string          `json:"id"`
-       Version          string          `json:"version"`
-       APIVersion       string          `json:"apiVersion"`
-       VersionGitTag    string          `json:"gitTag"`
-       SupportedSharing map[string]bool `json:"supportedSharing"`
-       Builder          BuilderConfig   `json:"builder"`
+       // Public APIConfig fields
+       xsapiv1.APIConfig
 
        // Private (un-exported fields in REST GET /config route)
        Options       Options        `json:"-"`
@@ -39,8 +53,8 @@ type Options struct {
 const (
        DefaultAPIVersion = "1"
        DefaultPort       = "8000"
-       DefaultShareDir   = "${HOME}/.xds-server/projects"
-       DefaultSTHomeDir  = "${HOME}/.xds-server/syncthing-config"
+       DefaultShareDir   = "${HOME}/.xds/server/projects"
+       DefaultSTHomeDir  = "${HOME}/.xds/server/syncthing-config"
        DefaultSdkRootDir = "/xdt/sdk"
 )
 
@@ -57,6 +71,7 @@ func Init(cliCtx *cli.Context, log *logrus.Logger) (*Config, error) {
                dfltSTHomeDir = resDir
        }
 
+       // Retrieve Server ID (or create one the first time)
        uuid, err := ServerIDGet()
        if err != nil {
                return nil, err
@@ -64,12 +79,14 @@ func Init(cliCtx *cli.Context, log *logrus.Logger) (*Config, error) {
 
        // Define default configuration
        c := Config{
-               ServerUID:        uuid,
-               Version:          cliCtx.App.Metadata["version"].(string),
-               APIVersion:       DefaultAPIVersion,
-               VersionGitTag:    cliCtx.App.Metadata["git-tag"].(string),
-               Builder:          BuilderConfig{},
-               SupportedSharing: map[string]bool{ /*FIXME USE folder.TypePathMap*/ "PathMap": true},
+               APIConfig: xsapiv1.APIConfig{
+                       ServerUID:        uuid,
+                       Version:          cliCtx.App.Metadata["version"].(string),
+                       APIVersion:       DefaultAPIVersion,
+                       VersionGitTag:    cliCtx.App.Metadata["git-tag"].(string),
+                       Builder:          xsapiv1.BuilderConfig{},
+                       SupportedSharing: map[string]bool{ /*FIXME USE folder.TypePathMap*/ "PathMap": true},
+               },
 
                Options: Options{
                        ConfigFile:     cliCtx.GlobalString("config"),