A simple programm to setup a projects folder based on a list of git repostiories
and git sub-pathconfigs written in Rust.
| src | get remove to work | |
| .gitignore | feat: project directory creation. | |
| Cargo.lock | Some changes | |
| Cargo.toml | Some changes | |
| LICENSE | add: license | |
| README.md | add: README | |
Git Orchestrator
A simple programm to setup a projects folder based on a list of git repostiories and git sub-pathconfigs written in Rust.
Installing / Building
Requirements
For the programm to work it requires that you have git installed and that
your file system uses utf-8 compatible paths
Building and Installing
You can build the programm with
cargo build --release
and then install it with
cargo install
Usage
git-orchestrator -v -c config.toml create
This will setup the project directory based on the config.toml in the current
working directory whilst logging verbosly.
The config uses the following schema:
gitconfig = String # optional key of contents of the top-level git
# config file in the prefix-directory
modify_global = bool # optional (default: false): if this programm should
# tie in the gitconfigs into the global gitconfig, so
# that when you enter the directory, the settings will
# be applied
global_out = path # optional: a file in which this programm should
# include the changes that would be made to the
# global config. See above entry.
[[pulls]] # in the top level directory
url = "urlstring" # The url of the repository to clone
bare = bool # optional (default: false): if it should be a
# bare clone.
dir_name = directory_name # optional: the name of the directory in which
# the repostiory should be cloned.
[[pulls]] # other pull in the top level directory
url = "urlstring" # The url of the repository to clone
bare = bool # optional (default: false): if it should be a
# bare clone.
dir_name = directory_name # optional: the name of the directory in which
# the repostiory should be cloned.
[subpath."path"]
gitconfig = string # optional: gitconfig for subpath.
[[subpath."path".pulls]]
url = "urlstring" # The url of the repository to clone
bare = bool # optional (default: false): if it should be a
# bare clone.
dir_name = directory_name # optional: the name of the directory in which
# the repostiory should be cloned.
[[subpath."path".pulls]] # another pull
url = "urlstring" # The url of the repository to clone
bare = bool # optional (default: false): if it should be a
# bare clone.
dir_name = directory_name # optional: the name of the directory in which
# the repostiory should be cloned.
...