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:
- use option value (for example use project ID set by
--id
option), - else use variable
XDS_xxx
(for exampleXDS_PROJECT_ID
variable) when a config file is specified with--config|-c
option, - else use
XDS_xxx
(for exampleXDS_PROJECT_ID
) environment variable
Note: all parameters after a double dash (–) are considered as the command to execute on xds-server.
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_SERVER_URL
env variable
Remote XDS server url (default: “localhost:8000”)
How to build
Prerequisites
You must install and setup Go version 1.7 or higher to compile this tool.
Building
Clone this repo into your $GOPATH/src/github.com/iotbzh
and use delivered Makefile:
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
(client part) andxds-server
(server part), it may be useful use the same local sources. So you should replacexds-server
invendor
directory by a symlink. So clone firstxds-server
sources next toxds-exec
directory. You should have the following tree:
> tree -L 3 src
src
|-- github.com
|-- iotbzh
|-- xds-exec
|-- xds-server
Then invoke vendor/debug
Makefile rule to create a symlink inside vendor
directory :
cd src/github.com/iotbzh/xds-exec
make vendor/debug