resholve
toolbox-images
Our great sponsors
resholve | toolbox-images | |
---|---|---|
11 | 8 | |
208 | 5 | |
- | - | |
7.7 | 0.0 | |
6 days ago | over 1 year ago | |
Python | Shell | |
MIT License | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
resholve
-
What is the Flakes version of "reproducible interpreted scripts"?
I'm also not 100% on whether it answers the question, but I imagine you're thinking of https://github.com/abathur/resholve (doc in nixpkgs: https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/misc/resholve/README.md)
-
modular bash profile scripting with shellswain
I intend to eventually find some time to figure out how feasible it would be to use https://github.com/abathur/resholve or wrapper techniques to bolt basalt (and perhaps other bash PMs) on to the nix ecosystem and nix-package some of your libraries.
-
Is there a good way to programmatically determine how many inputs some function can support?
(I'd love to have this ability for https://github.com/abathur/resholve to reliably identify arguments to one command that are also external commands/programs that it will in turn exec. I can't imagine trying to start it until/unless I have any bright ideas about how that executable spec and a parser for it would work.)
-
Could someone give me an example how I would have multiple "commands" in default.nix?
In https://github.com/abathur/resholve/blob/master/default.nix and https://github.com/abathur/resholve/blob/master/shell.nix you can see one approach to extending that line of thought to the default.nix itself.
-
Building the Future of the Command Line
Completions have in general been of interest, though the shell-specific completions I've looked at so far were all too dynamic.
I'd forgotten all about Fig since I saw your launch post here last year, so thanks for reminder. (I don't think I had quite started to work on parsing specific external commands, yet. Was still focused on just identifying the likely presence of exec in the executables.)
Are you familiar with the parse code? Are you handling painful stuff like combined short flags with a trailing option? (If I ferreted out some of the more painful cases I've had to wrangle, I am curious if you'd have a gut sense of whether your approach handles it. Would you mind if I reach out? I am working on this for https://github.com/abathur/resholve)
-
Devbox: Instant, easy, and predictable shells and containers
@dloreto @robrich A little aside from the announcement, but since it seems like you both work on this I wanted to surface something that came up down in a subthread:
I'm curious if you attempted to support macOS by doing this with Nix's dockerTools and cross-compiling (there may be better sources, but it's at least hinted at in https://nix.dev/tutorials/building-and-running-docker-images...)? If so, I'm wondering where that failed or bogged down?
---
Background: I build a tool (https://github.com/abathur/resholve) for ~packaging Bash/Shell (i.e., for demanding all dependencies be present). The tool's technically agnostic, but I built it specifically to fix Shell packaging in Nix.
I think it could benefit a lot of other Shell projects, since one of Shell's big tribulations is dealing with heterogenous environments, but most Shell projects wouldn't see much reason to endure the pain of adopting Nix if they still had to support the heterogenous environments.
Much like you're doing here, I've entertained figuring out how to build a Nix-based packaging flow that can generate deployable standalone bundles or containers. It'd be a heavy way to bundle Shell, but I imagine some projects would take the tradeoff for predictability and reduced support load. But since it would need to take place within a Nix build, I'd need to cross-compile for it to work on macOS. Hoping you know if it's a dead-end or not :)
-
Ask HN: Why aren't code diagram generating tools more common?
For a concrete example, I've been developing a tool (https://github.com/abathur/resholve) that can ~build/link Bash/Shell scripts--i.e., rewrite them with external executables converted to absolute paths. (This helps ensure dependencies are known, declared, present, and don't have to be on the global PATH for the script to execute cleanly.)
There's a devilish sub-problem, which is that any given executable can potentially exec arbitrary arguments. For now I handle this with a very crude automated binary/executable analysis that needs to be augmented by human source analysis. Deep multi-language source analysis wouldn't be very scalable, but I suspect fairly-standardized structural annotations could improve the results in a scalable way.
I have to imagine there are other applications of the same information.
-
I wrote an article about creating unit-tests and mocks for POSIX shells
I'm not 100% sure if you see the minimal PATH dependencies as a problem or not--so this may or may not help--but I develop https://github.com/abathur/resholve to make it easier to package Shell in Nix/nixpkgs by rewriting invocations of external dependencies in Shell scripts to absolute paths--and shunit2 is one of the Nix packages that I've updated to use resholve.
-
On Env Shebangs
I came here to say this, too :)
But, of course, it still isn't a silver bullet...
1. You still have to have a sane PATH. A fair amount of the Nix install-related issues that get opened are PATH problems, and you can also run into problems with PATH in cron/launchd.
2. You still have to know what the script depends on. This can get tricky beyond small scripts you wrote yourself. (I write a tool for ~linking/resolving external dependencies in Shell scripts, https://github.com/abathur/resholve. As I've been working on converting some of nixpkgs' existing Shell packages to use it, I almost always find dependencies the initial packager missed.)
-
Runtime dependencies for a bash script
Check out resholve. https://github.com/abathur/resholve
toolbox-images
-
Devbox: Instant, easy, and predictable shells and containers
So essentially this seems like another implementation of what toolbox and distrobox is implementing.
https://github.com/containers/toolbox/
https://github.com/89luca89/distrobox
With the downside of not having the option to select a Linux distro and being locked to the nixpkgs repositories?
-
C Package Manager
You can also do that with rootless containers via Podman. There’s even a convenient wrapper for that workflow made by Red Hat called Toolbox (https://github.com/containers/toolbox)
-
Any insight when, if ever, will Poettering's Authenticated Boot and Disk Encryption -vision be nicely supported on Arch Linux?
The main issues I think is that many of these ideas are only really compatible with an immutable OS like Fedora Silverblue and ostree-like systems. It works better where you can cut releases and say "this is the base system" while a rolling release distribution is a moving target where you will be struggling with idiosyncrasies. The mutable part would be /home on a separate partition and any tool usage would be confined into toolbox like containers.
- Web-Based OS for casual office work
-
Running a private Arch environment as a regular user without a virtual machine
Sounds very similar to https://github.com/containers/toolbox
-
GitHub - 89luca89/distrobox: Use any linux distribution inside your terminal.
It implements what https://github.com/containers/toolbox does but in a simplified way using POSIX sh and with broader compatibility.
-
netstat -tulpen to csv format
You can run any command from any distro using containers. I recently discovered toolbox but I haven't had time to try it yet. I still make my own Ubuntu containers when I'm after some command from there.
-
try.nvim -- a toy development container for trying out neovim
There are efforts to get specifically Arch integrated and there's this github repo with an image, but I couldn't get sudo support to work with the included script... and yeah, not worth the effort for now.
What are some alternatives?
datashare - A self-hosted search engine for documents.
distrobox - Use any linux distribution inside your terminal. Enable both backward and forward compatibility with software and freedom to use whatever distribution you’re more comfortable with. Mirror available at: https://gitlab.com/89luca89/distrobox
mpack - MPack - A C encoder/decoder for the MessagePack serialization format / msgpack.org[C]
cryptsetup
egglog0 - Datalog + Egg = Good
systemd - The systemd System and Service Manager
devbox - Instant, easy, and predictable development environments
wakemeops - A Debian repository for portable applications
py_regular_expressions - Learn Python Regular Expressions step by step from beginner to advanced levels
sbctl - :computer: :lock: :key: Secure Boot key manager
swift-sh - Easily script with third-party Swift dependencies.
kickstart.nvim - A launch point for your personal nvim configuration