Welcome to the rake world, where complexity meets simplicity and sanity is
restored to your multi-project universe.
Think of rake as a single make to rule them all – it's the beautifully
simple solution that lets you stop wrestling with build orchestration and get
back to what actually matters: your code.
At its heart, rake is just a clever Makefile that knows how to talk to
other Makefiles. That's it. No fancy frameworks, no mysterious magic, no PhD
required. Just good old battle-tested make, git and bash doing what
they've done reliably for decades.
Simple:
curl -L https://raw.githubusercontent.com/MetaBarj0/rake/refs/heads/main/scripts/install | bash
It will install rakeup in your user directory and you'll be able to rake
everything:
mkdir my-fancy-monorepocd my-fancy-monoreporakeup
It'll create a brand new git repository.
All you need is to create some stuff in the subs directory.
Each sub being a part of your project (frontend, backend, git submodule,
whatever...). The must is you have a Makefile in the sub you create.
Perfect for the modern mono-repo reality: Got a repo mixing Python
microservices, React frontends, Go APIs, and maybe some Rust sprinkled in?
rake doesn't care. Each sub-project lives in its own directory with its own
Makefile, and rake orchestrates them like a conductor with a very chill
attitude.
Zero mental overhead: rake is designed to be invisible infrastructure. It's
the boring, reliable tool that Just Works™ so you can focus on your actually
interesting problems. No new concepts to learn, no configuration files to
maintain, no surprise behaviors.
Compound targets made easy: Want to test everything in your backend
project? make backend test. Want to build just the frontend? make frontend build. Want to deploy the whole shebang? make frontend deploy && make backend deploy. rake gives you the power to compose complex operations from simple,
predictable building blocks.
Battle-tested foundation: Built on git, make and bash – tools that
have been solving build problems since before most of us were born. If it works
on one Unix-like system, it works everywhere. No runtime dependencies, no
version conflicts, no surprises.
rake believes that build orchestration should be simple, predictable, and
boring. It's not trying to reinvent the wheel or be the next big thing in
DevOps. It's just trying to make your life a little easier when you're juggling
multiple projects that need to work together.
In a world of over-engineered build systems and complex CI/CD pipelines, rake
is the refreshingly simple alternative that lets you get back to building cool
stuff instead of fighting with your tooling.
Ready to enter the rake world? Your future self will thank you for choosing
simplicity.
- provide abbreviation for subs for user user convenience
- For instance, if there is only one
subbeginning with the letternsuch asnideovim, the user can type either:make nideovim ...make n ...
- make sure there is no ambiguity in user inputs
- make it work for beginning of sub name but also for
- ending sub name:
nideovimandnideovim2can be targeted bynmandn2respectively
- split names by separator such as
-or_nideovim-testandnideovim-prodcan be targeted byntandnprespectively- and with
ndfornideovim-prod - and with
nideovim-tandnideovim-prespectively
- ending sub name:
- For instance, if there is only one