Skip to content

Latest commit

 

History

History
104 lines (88 loc) · 2.75 KB

README.md

File metadata and controls

104 lines (88 loc) · 2.75 KB

WebDash

Introduces a unique way of aliasing commands while working with bash. Adds some extra abilities:
  • Invokes dependencies.
  • A consistent environment for projects.
  • Directory-relative references
    • You can use $.rootDir()/src/projectA to reference projectA when building some projectB.

Setup

Install Dependencies

# Includes newer tools.
sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y
sudo apt-get update

sudo apt-get install git
sudo apt-get install cmake
sudo apt-get install make
sudo apt-get install libboost-all-dev

# Perform ONLY if your g++ version is below g++-9.
sudo apt-get install g++-9
sudo apt-get install gcc-9
sudo ln -sf g++-9 /usr/bin/g++

Run the Setup Script

Call ./data/setup-webdash.sh to initialize everything. It will use your git client to clone additionally required projects.

Enforced Environment

A special directory hierarchy is enforced by WebDash.

 

app-persistent/
    bin/
    lib/
app-temporary/
    logging/
data/
    setup-webdash.sh
src/
    bin/
        _webdash-client/
        _webdash-server/
    lib/
        external/
            json/
            websocketpp/
        webdash-executor/
webdash-profile.json
.gitignore
webdash.terminal.init.sh

This is your new development environment.

webdash-profile.json

Located in the top-level directory after setup is completed. Defines all global behavior.

 

{
    "myworld": {
        "rootDir": "this"
    },
    "env": {
        "MYWORLD": "$.rootDir()"
    },
    "path-add": [
        "$.rootDir()/app-persistent/bin"
    ],
    "pull-projects": [
        {
            "source": "https://github.com/Amtrix/src-bin-report-build-state",
            "destination": "$.rootDir()/src/bin/report-build-state",
            "exec": ":all",
            "register": true
        }
    ]
}

Note: Entry in pull-projects is listed as an example.

Meaning of all fields:

  • myworld.rootDir = this
    • Used by webdash to identify the root directory. Only a single definitions.json with such entry should exist.
  • env.VAR
    • adds environment variable VAR.
  • path-add
    • adds listed paths to PATH.
  • pull-projects
    • pulls listed projects when ./data/setup-webdash.sh is called.
  • pull-projects.ENTRY.exec
    • calls the specified entry within the project's webdash.config.json file after the cloning.