# Gregory This is Gregory. Gregory controls repos. Gregory keeps track of updating repos, trying to be simple and elegant, but enough. ## Documentation Install gregory with `cargo install`: ```sh cargo install --git https://github.com/askiiart/gregory ``` Gregory's config looks something like this: ```toml max-jobs = 4 max-threads = 10 [packages] [packages.librewolf] dependencies = ["some-librewolf-dependency"] version_check = ["check-version --whenever-you-feel-like-it-please"] [packages.librewolf.compilation] revision = "2" threads = 6 image = "docker.io/library/debian" commands = ["echo hi", "sleep 2.432", "echo helloooooooooo"] volumes = ["librewolf"] ``` For more details, look at the `./docs/`, and check out the rest of the [example config](./gregory.example.toml). Once you've created your config, just run gregory with `gregory run` - that's it! ## TODO - Add multithreading - Add hook system - Fix dependencies/running jobs - update docs with uid ## Other stuff - The formatting for the config file (`gregory.toml`) was heavily inspired by Drone's config. - Why the name? - I was thinking to go with something dark and foreboding, since this is a program to control *everything* about many repos - it's the high command. But I couldn't think of anything and thought just naming it some lame random name instead would be way funnier. Hence, Gregory. - Gregory is a program, so it uses it/its pronouns. It also doesn't mind whether you capitalize its name or not, "gregory" or "Gregory" are fine, you can even shorten it if you want. - It's built for updating package repositories, but can be used to run pretty much anything. This isn't to say support won't be offered unless you're using it for a repo, but development will be focused on updating repos.