Manage nix roots outside of the usual locations, for non-nix-native development. Mirror of https://sr.ht/~fgaz/orchid/
https://sr.ht/~fgaz/orchid/
- Haskell 94.7%
- Nix 5.3%
| bimap-many @c7846d4a10 | Update dependencies | |
| src | Don't use the filesystem as a poor man's database | |
| .gitignore | Ignore more haskell/nix stuff | |
| .gitmodules | Add bimap-many submodule | |
| cabal.project | Don't use the filesystem as a poor man's database | |
| CHANGELOG.md | 🌅 | |
| default.nix | Update generateOptparseApplicativeCompletions | |
| flake.nix | Use self.submodules in flake | |
| LICENSE | 🌅 | |
| Main.hs | Show global options in subcommand help | |
| orchid.cabal | Update dependencies | |
| README.md | Use self.submodules in flake | |
| Setup.hs | 🌅 | |
orchid
This program was made to solve the problem resulting from the following sequence of events:
- Enter a
nix-shell -p $library, where$libraryis needed for development - In the shell, build some
$program, which links with, or makes use of,$library - Exit the shell, run
nix-collect-garbage $programnow lacks$libraryand breaks
Orchid scans the given paths for references to the nix store and pins whatever it finds.
In other words, it makes nix take roots outside of the store+environments, hence the name.
Other nice features are:
- Fast, incremental scanning
- Simple filesystem-based root database
Installation
Both a traditional default.nix and a flake are provided. Install from a checkout with:
$ nix-env -f . -i
or:
nix profile add
Usage
To scan PATH for references and pin them, run
orchid pin PATH
Use the --help flag to see more options.
Contributing
You can send patches to my public-inbox mailing list or to any of the contacts listed at fgaz.me/about. Or you can send a pull request to the Codeberg mirror.
Issues are tracked at https://todo.sr.ht/~fgaz/orchid