summaryrefslogtreecommitdiffstats
path: root/docs/SUMMARY.md
blob: 10722f9fe1517726992f9afdb17413f947437292 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# Summary

* [Binder Overview](afb-introduction.md)
* [Binder daemon vocabulary](afb-daemon-vocabulary.md)
* [How to write a binding ?](afb-binding-writing.md)
* [Binding references](afb-binding-references.md)
  * [Types and globals](reference-v3/types-and-globals.md)
  * [Macros for logging](reference-v3/macro-log.md)
  * [Functions of class afb_api](reference-v3/func-api.md)
  * [Functions of class afb_req](reference-v3/func-req.md)
  * [Functions of class afb_event](reference-v3/func-event.md)
  * [Functions of class afb_daemon](reference-v3/func-daemon.md)
  * [Functions of class afb_service](reference-v3/func-service.md)
* [Binder events guide](afb-events-guide.md)
* [Binder Application writing guide](afb-application-writing.md)
* [Annexes](annexes.md)
  * [Migration to binding v3](afb-migration-to-binding-v3.md)
  * [WebSocket protocol x-afb-ws-json1](protocol-x-afb-ws-json1.md)
  * [Installing the binder on a desktop](afb-desktop-package.md)
  * [Options of afb-daemon](afb-daemon-options.md)
  * [Debugging binder and bindings](afb-daemon-debugging.md)
  * [LEGACY Guide to migrate bindings from v1 to v2](legacy/afb-migration-v1-to-v2.md)
  * [LEGACY Binding V2 references](legacy/afb-binding-v2-references.md)
* [Document revisions](REVISIONS.md)
`json:"webAppDir"` LogsDir string `json:"logsDir"` XDSAPIKey string `json:"xds-apikey"` ServersConf []XDSServerConf `json:"xdsServers"` SThgConf *SyncThingConf `json:"syncthing"` } // readGlobalConfig reads configuration from a config file. // Order to determine which config file is used: // 1/ from command line option: "--config myConfig.json" // 2/ $HOME/.xds/agent/agent-config.json file // 3/ /etc/xds-agent/config.json file func readGlobalConfig(c *Config, confFile string) error { searchIn := make([]string, 0, 3) if confFile != "" { searchIn = append(searchIn, confFile) } if homeDir := common.GetUserHome(); homeDir != "" { searchIn = append(searchIn, path.Join(homeDir, ".xds", "agent", "agent-config.json")) } searchIn = append(searchIn, "/etc/xds-agent/agent-config.json") var cFile *string for _, p := range searchIn { if _, err := os.Stat(p); err == nil { cFile = &p break } } if cFile == nil { c.Log.Infof("No config file found") return nil } c.Log.Infof("Use config file: %s", *cFile) // TODO move on viper package to support comments in JSON and also // bind with flags (command line options) // see https://github.com/spf13/viper#working-with-flags fd, _ := os.Open(*cFile) defer fd.Close() // Decode config file content and save it in a first variable fCfg := FileConfig{} if err := json.NewDecoder(fd).Decode(&fCfg); err != nil { return err } // Decode config file content and overwrite default settings fd.Seek(0, 0) json.NewDecoder(fd).Decode(&c.FileConf) // Disable Syncthing support when there is no syncthing field in config if fCfg.SThgConf == nil { c.FileConf.SThgConf = nil } // Support environment variables (IOW ${MY_ENV_VAR} syntax) in agent-config.json vars := []*string{ &c.FileConf.LogsDir, &c.FileConf.WebAppDir, } if c.FileConf.SThgConf != nil { vars = append(vars, &c.FileConf.SThgConf.Home, &c.FileConf.SThgConf.BinDir) } for _, field := range vars { var err error *field, err = common.ResolveEnvVar(*field) if err != nil { return err } } return nil }