marcosnils / bin

Effortless binary manager

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Install packages/binaries from a file containing a list of packages with pinned versioning (e.g. `bin ls > binfile`, then `bin i ./binfile`

kforeverisback opened this issue · comments

First let me say, I really enjoyed using bin for managing all my static binary releases!

I was using eget, then moved on to stew, then finally settled on your bin tool.

One of the things I liked about stew was its support for Stewfile (its just stew ls > Stewfile, see https://github.com/marwanhawari/stew?tab=readme-ov-file#list), which you can put in your source control, and from this file you can install all necessary tools (with pinned versioning) in another machine!

Not sure if bin has similar features, but I'd love bin to have this feature.
I can also contribute if I get some helps from the community :)

First let me say, I really enjoyed using bin for managing all my static binary releases!

hey! that's great to know. It's awesome that you're finding bin useful like other users.

Not sure if bin has similar features, but I'd love bin to have this feature.

yes, bin has something similar as well. If you take your bin config file (generally located at XDG_CONFIG_HOME/bin, move it to a different server and then run bin ensure, that'd synchronize all your missing tools.

Hope this helps!

Marcos.

Thanks @marcosnils! That somewhat works!

Only thing is that bin config file stores the full path under default_path as well as per item.

{
    "default_path": "/home/kushal/.local/bin",      ## <-- Full path to default bin path
    "bins": {
        "/home/kushal/.local/bin/bat": {            ## <-- Full path as key name
            "path": "/home/kushal/.local/bin/bat",  ## <-- Full path again here
            "remote_name": "bat",
            "version": "v0.24.0",
            "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
            "url": "https://github.com/sharkdp/bat",
            "provider": "github",
            "package_path": "bat-v0.24.0-x86_64-unknown-linux-gnu/bat"
        },
        ...
    }
}

A different server might have different username and path.
After your comment, I actually created a script which takes care of this (modify the config paths before installing, simple bash and jq based).

Still, I believe a separate cmd (or different config structure for export to source control) in bin might be useful for users to create a reproducible environment (where same binaries are installed) in another server or maybe even share with their friends/colleagues.

Awesome tool, even awesome-er(!) work! Thanks @marcosnils!