cross-posted from: https://lemmy.ml/post/35239632
Maak: The infinitely extensible command runner, control plane and project automator à la Make (written in Guile Scheme - Lisp)
https://codeberg.org/jjba23/maak
Free yourself of repetitive, lacking, weird and arcane Makefile. After some weeks working on this project, I am upstreaming it to Guix so soon you all can enjoy.
https://codeberg.org/guix/guix/pulls/2132
Also, see here an advanced example of a Maak file: https://codeberg.org/jjba23/sss/src/branch/trunk/maak.scm
With the full power of Scheme (Guile) directly in your command runner/control plane, easily define functions, data, lists, loop through them, macros, etc.
Maak has as core mission being your control center or command plane, and act as a command runner, not necessarily a build system, so it avoids much of Make’s complexity. No need for .PHONY recipes here.
Maak replaces the arcane syntax of Make with the power and elegance of a full-featured programming language: GNU Guile Scheme λ.
Instead of learning a limited DSL, you can leverage your existing Lisp skills to define tasks, manage data, and automate your workflows with ease. Define functions, manipulate lists, use conditional, create macros—the entire language is at your disposal.
You can also easily call external shell commands and integrate with your existing scripts and tools.
Hey all I have an experimental Docker/Podman build here, which you can take for a spin, it works well for me, I don’t have any macOS devices to test on yet though, LMK.
Docker tarball hosted on 2 sites: https://limewire.com/d/IHVnx#Pz9q6EwDwL https://filebin.net/gevqik62yzwfxa8u/maak-docker.tar.gz
Once you downloaded this tarball, you can import it with docker load < my.tar.gz
Installing via Guix will always remain more convenient and powerful but docker/podman will work for cross-platform pretty good. Say for example you have a maak file with a task serve, at /home/joe/hacking/hygguile/maak.scm , you could run it as so:
docker container run -v /home/joe:/home/joe localhost/maak:latest maak -f /home/joe/hacking/hygguile/maak.scm serve
Due to popular demand :) Maak is now also available as an experimental Docker container, from DockerHub (also compatible with Podman).
https://hub.docker.com/repository/docker/jjba23/maak/general
You can also build images of maak yourself, using guix pack. See the maak.scm file for more. To load these tarball images, you can do podman load < my.tar.gz
Then you can run Maak from the container, and bind your local filesystem to give access, for example:
docker container run -v /home/joe:/home/joe
docker.io/jjba23/maak:latest maak -f /home/joe/hacking/maak/maak.scm --list