top | item 41338101

(no title)

peauc | 1 year ago

I find that https://github.com/casey/just is a great answer to a lot of problems in this thread. I have a justfile in all my projects now and I'm very happy.

discuss

order

okanat|1 year ago

I found just and was about to use it in place of a Python script for preset targets in one of the Greenfield projects I had. I decided not to since it makes a weird decision to use sh in Windows environments, it tries to use Git for Windows bash or MSYS2 one which is very unwieldy.

I am still in search of a simple build scripting language/system that doesn't rely on any OS shell. Something that isn't as barebones as ninja, isn't as wacky and Unix specific as Make nor is as general purpose as Python. I just want a statically linked executable that I can install in any of the Linux, macOS or Windows versions as a single binary. It should handle the path differences well and should execute things directly without a shell. I basically need a very basic script interpreter.

CMake kind of is that system but it is too stringly typed and sometimes wacky too. Python kind of works too, but they have a quite a bit disregard for backwards compatibility and isolation from the surrounding OS, so I am forced to use solutions like Conda to ensure a specific version with specific dependencies and their versions are pulled and can be reproduced across different OSes without interfering with the locally installed Python.

aquariusDue|1 year ago

A bit late to the party but have you heard of or tried babashka? It's kinda the nuclear option but it might fit your use case.

https://babashka.org/

rrrix1|1 year ago

  I basically need a very basic script interpreter.
The problem you're describing goes far beyond the build system. You're looking for a cross platform shell.

kstrauser|1 year ago

Same. I think a lot of it comes down to the language you’re using. If I’m doing something in Python or Rust, poetry or cargo hand all the magic I would have encoded in a Makefile for a C project years ago. Today I have a justfile with a target like:

  build:
      cargo build
and a bunch of other targets for testing, running it, etc.