Skip to content

Amtrix/webdash

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

76 Commits
 
 
 
 
 
 
 
 

Repository files navigation

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.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published