{"repo":"abathur/resholve","free":true,"listed":false,"github":"https://github.com/abathur/resholve","clone":"git clone https://github.com/abathur/resholve.git","description":"a shell resolver? :) (find and resolve shell script dependencies)","language":"Python","stars":263,"topics":["bash","nix","packaging","packaging-scripts","packaging-tool","shell","nixpkgs","shell-scripting","build-tool","build-tools"],"license":"MIT","category":"cli-tools","readme_excerpt":"resholve references to external dependencies in shell scripts resholve ensures shell script dependencies are declared, present, and don't break or shift if PATH changes. It helps turn shell scripts and libraries into reliable, self-contained packages you can use as building blocks. resholve treats references to external commands (and sourced scripts) as build-blocking errors until you declare the dependency. Once they're all declared, it rewrites the references to absolute paths. Comparisons: - a linker for bash scripts - patchelf for shell scripts Convinced? Jump to the Quickstart. Otherwise: - If you want to understand what problems resholve addresses, read the next section. - If you want to see invocations and output, the Demos document is a good place to start. What problem(s) does this solve? I built resholve so Nix/Nixpkgs can have great shell packaging. In the Nix ecosystem, resholve helps us: - discover and declare dependencies at package time instead of after runtime failures - keep unexpected versions of an executable or script from causing undefined behavior - avoid polluting PATH with all of a script's dependencies, which also means - no conflicts between tools different scripts need on PATH - no conflicts with other packages a user expects on PATH - no implicit dependency on the content of fragile rc/profile scripts - work directly with \"normal\" shell scripts - no polluting source scripts with template variables/syntax - no inlining shell scripts to readily injec","default_branch":null,"files":null,"tree":[],"storefront":"/r/abathur","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/abathur/resholve/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}