Manages Git-based workspaces
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.
Runs Git command in each project directory
Prints workspace information
Runs command in each project directory
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")
- rustup is recommended
- Building with rustup has been tested on Linux, Windows and macOS
cd /path/to/repos
git clone https://gitlab.com/rcook/rws.git
cd /path/to/repos/rws
cargo build