Skip to content
Richard's Workspace Tool
Rust
Branch: master
Clone or download

Latest commit

Latest commit 2e7dfbc Mar 22, 2020

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
src
.gitignore Use rust-appveyor-build-pack Mar 21, 2020
Cargo.toml
LICENSE Move Rust sources to root of repo Mar 5, 2020
README.md Use rust-appveyor-build-pack Mar 21, 2020
appveyor.yml Upload test logs Mar 22, 2020
rust-toolchain

README.md

Richard's Workspace Tool

AppVeyor status for project AppVeyor status for master branch

Manages Git-based workspaces

Official home page

This is intended to be a cross-platform Git workspace management tool. To allow users to extend its functionality via workspace configuration, RWS uses an embedded Lua scripting engine. This is intended to discourage users from writing non-portable shell script extensions. It has been tested on Ubuntu, Windows 10 and macOS 10.14.6.

git command

Runs Git command in each project directory

info command

Prints workspace information

run command

Runs command in each project directory

rws-workspace.yaml configuration

This is the schema for the optional rws-workspace.yaml configuration file that should be placed in the root directory of your multi-repo workspace:

# (Optional)
variables:
  # (Optional)
  VARIABLE0: VALUE0
  # (Optional)
  VARIABLE1: VALUE1

# (Optional)
default-language: lua

# (Optional)
lua-config:
  # (Optional)
  preamble: |
    #dofile("shared.lua")
    local DEPS_FILE_NAME = "_DEPS"
    local function parse_config_lines(lines)
      local result = {}
      for _, line in ipairs(lines) do
        local temp = prelude.trim_string(line)
        if temp:len() > 0 and temp:find("#") ~= 1 then
          result[#result + 1] = temp
        end
      end
      return result
    end
  # (Optional)
  use-prelude: true

# (Optional) (or specify "dependency-command")
dependencies:
  aaa:
  - bbb
  - ccc
  ccc:
  - ddd
  - eee

# (Optional) (or specify "dependencies")
dependency-command:
  # (Optional)
  language: lua
  # (Optional)
  use-prelude: true
  # (Required)
  script: |
    if prelude.is_file(DEPS_FILE_NAME) then
      return parse_config_lines(prelude.read_file_lines(DEPS_FILE_NAME))
    else
      return { }
    end

# (Optional)
excluded-projects:
- fff
- ggg

# (Optional)
init-command:
  # (Optional)
  language: lua
  # (Optional)
  use-prelude: true
  # (Required)
  script: |
    print("Hello from init-command")

Building locally

Install Rust

  • rustup is recommended
  • Building with rustup has been tested on Linux, Windows and macOS

Clone workspace

cd /path/to/repos
git clone https://gitlab.com/rcook/rws.git
cd /path/to/repos/rws
cargo build

Licence

MIT License

You can’t perform that action at this time.