summaryrefslogtreecommitdiffstats
path: root/docs/part-2/5_xds-exec.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/part-2/5_xds-exec.md')
-rw-r--r--docs/part-2/5_xds-exec.md119
1 files changed, 119 insertions, 0 deletions
diff --git a/docs/part-2/5_xds-exec.md b/docs/part-2/5_xds-exec.md
new file mode 100644
index 0000000..cc31a40
--- /dev/null
+++ b/docs/part-2/5_xds-exec.md
@@ -0,0 +1,119 @@
+# xds-exec: wrapper on exec for XDS
+
+`xds-exec` is a wrapper on exec linux command for X(cross) Development System.
+
+As well as `xds-exec` is a wrapper on exec command and can be use to execute any
+command on a remote `xds-server`.
+
+This tool can be used in lieu of "standard" `exec` command to execute any
+command on a remote `xds-server`. For example you can trig your project build by
+executing : `xds-exec --config conf.env -- make build`
+
+## Configuration
+
+`xds-exec` configuration is defined either by environment variables or by
+setting command line options (see listed below).
+
+Configuration through environment variables may also be defined in a file that
+will be sourced on `xds-exec` start-up. Use `--config|-c` option or set
+`XDS_CONFIG` environment variable to specify the config filename.
+
+So configuration is driven either by environment variables or by command line
+options or using a config file knowing that the following priority order is used:
+
+1. use option value (for example use project ID set by `--id` option),
+1. else use variable `XDS_xxx` (for example `XDS_PROJECT_ID` variable) when a
+ config file is specified with `--config|-c` option,
+1. else use `XDS_xxx` (for example `XDS_PROJECT_ID`) environment variable
+
+<!-- note -->
+**Note:** all parameters after a double dash (--) are considered as the command
+to execute on xds-server.
+<!-- endnote -->
+
+### Configuration Options/Variables
+
+__`--id` option or `XDS_PROJECT_ID` env variable **(mandatory)**__
+
+Project ID you want to build
+
+__`--config|-c` option or `XDS_CONFIG` env variable__
+
+Env config file to source on startup
+
+__`--log|-l` option or `XDS_LOGLEVEL` env variable__
+
+Logging level, supported levels are:
+
+- panic,
+- fatal,
+- error,
+- warn,
+- info,
+- debug
+
+Default level is "error".
+
+__`--rpath` option or `XDS_PATH` env variable__
+
+Relative path into project
+
+__`sdkid` option or `XDS_SDK_ID` env variable **(mandatory)**__
+
+Cross Sdk ID to use to build project
+
+__`timestamp|-ts` option or `XDS_TIMESTAMP` env variable__
+
+Prefix output with timestamp
+
+__`url` option or `XDS_AGENT_URL` env variable__
+
+Local XDS agent url (default: "localhost:8800")
+
+## How to build
+
+### Prerequisites
+
+ You must install and setup [Go](https://golang.org/doc/install) version 1.8.1 or
+ higher to compile this tool.
+
+### Building
+
+Clone this repo into your `$GOPATH/src/github.com/iotbzh` and use delivered Makefile:
+
+```bash
+ export GOPATH=$(realpath ~/workspace_go)
+ mkdir -p $GOPATH/src/github.com/iotbzh
+ cd $GOPATH/src/github.com/iotbzh
+ git clone https://github.com/iotbzh/xds-exec.git
+ cd xds-exec
+ make
+```
+
+## Debug
+
+Visual Studio Code launcher settings can be found into `.vscode/launch.json`.
+
+>**Tricks:** To debug both `xds-exec` and `xds-agent` (REST API part) or common
+code `xds-common`, it may be useful use the same local sources.
+So you should replace `xds-agent` + `xds-common` in `vendor` directory by a symlink.
+So clone first `xds-agent` + `xds-common` sources next to `xds-exec` directory.
+You should have the following tree:
+
+```bash
+> tree -L 3 src
+src
+|-- github.com
+ |-- iotbzh
+ |-- xds-agent
+ |-- xds-common
+ |-- xds-exec
+```
+
+Then invoke `vendor/debug` Makefile rule to create a symlink inside vendor
+directory :
+
+```bash
+cd src/github.com/iotbzh/xds-exec
+make vendor/debug
+```