Join GitHub today
GitHub is home to over 50 million developers working together to host and review code, manage projects, and build software together.Sign up
resholved: init at hopes and dreams #85827
Motivation for this change
Give the Nix ecosystem a new superpower: resolving external dependencies in shell scripts.
Shell scripts/libraries with external dependencies are an odd duck in the Nix ecosystem. Packaging them with Nix doesn't ensure dependencies are available at runtime or address the possibility that the script could run executables provided by packages other than those specified as dependencies, for example.
This PR packages a project of mine named "resholved", and provides a Nix build function. Resholved is itself built atop the parser from the Oil shell project. A fair portion of the Nix code in this PR is just packaging/building a development version of Oil.
The PR itself isn't terribly useful for seeing what it does; it'll help to look at some additional resources:
FWIW, I dogfood resholved in my own darwin-configuration, where it is responsible for building a chain of Nix packages structured like:
Things I could use a little help/scrutiny on (added May 21 2020)
If you have time, I could use some extra scrutiny/feedback on the ergonomics and consistency of both the Nix interface and underlying CLI. It's not essential since we can iterate on it, but if you spot any obvious renames I'd rather fix them while the changes won't break workflows.
I marked this as draft for a few days while I refactored how it packages and consumes its Oil-shell dependency. Not super relevant, but the main changes are: