Environment Manager is a package that allow you to create custom environments based on *component*, switch between different environments, synchronization of different environments with each other.

### Getting Started
To get a local copy up and running follow these simple example steps.
#### Prerequisites
```bash
# install glog
apt-get install libgoogle-glog-dev
#install lua
wget http://www.lua.org/ftp/lua-5.3.1.tar.gz
tar zxf lua-5.3.1.tar.gz
make -C lua-5.3.1 linux && make -C lua-5.3.1 install
```
### Config
Configuration is done by lua.
```lua
-- require configuration table
ENV_MANAGER = {
-- dictionary of environments
environments = {
-- environment to upload with manager
example_environment = {
-- namespace in which all components will be
namespace = "<namespace_name>",
-- dictionary of components needed to upload for current environment
components = {
-- node match one of node in ENV_MANAGER.nodes
example_node = {
-- example libpub_component.so
lib = "<library_name>"
-- name of class which implement example_node logic
class = "<class_name>"
}
},
},
},
-- dictionary of nodes, that will be created by env_manager
nodes = {
-- node for initialization by env_manger
example_node = {
-- node name
name = "<node_name>",
-- one node can produce only one topic/service
type = "<Publisher|Subscriber|Service|Client>",
-- example "std_msgs/String",
msg_type = "<msg_type>",
},
},
}
-- return configuration table
return ENV_MANAGER
```
You can safely use all the feature of `lua` to write configuration.