4 ms·
There's also https://github.com/zyedidia/eget https://github.com/zyedidia/eget, which is also written in Go.
by jhvkjhk 2y ago
There's also https://github.com/zyedidia/eget https://github.com/zyedidia/eget, which is also written in Go.
- tarasglek 2y agoHere is my HN submission about eget: https://news.ycombinator.com/item?id=41479539 https://news.ycombinator.com/item?id=41479539 It's great to see movement in this space. The main problem in my experience is github api and throttling. It's really hard to download 40 binaries while building an image for CI/CD. Binaries themselves are CDNed, but github apis to find them are easily throttled, especially behind NAT. Need to have some caching mechanism avoid this. Eget seems currently abandoned, maybe gah can start looking stuff in a cache.
- ekristen 2y agothe dist project referenced above supports both caching and authentication for both github and gitlab.
- tarasglek 2y agoyes, i added it to my blog post, will investigate
- ekristen 2y agocool. please let me know when you post, I would like to read. I'm the author of dist if that wasn't clear. Also looking for feedback on the project should you find it useful.
- tarasglek 2y agoDuckDB binary downloaders compared `eget` wins: eget duckdb/duckdb 2 candidates found (unsure architecture): please select manually (1) duckdb_cli-osx-universal.zip (2) libduckdb-osx-universal.zip Enter selection number: Afterwards it correctly unzips. Can use cmdline flag to match artifacts `gah` fails: gah install duckdb/duckdb Fetching release info for: duckdb/duckdb [latest] Found release: v1.1.3 Bugfix Release Downloading: Warning: output file name has no length curl: option -o: is badly used here (Using curl 8.4.0 on macOS) `dist` also fails: dist install duckdb/duckdb • determining latest version • version: 1.1.3 ⨯ no matching asset found, score too low ⨯ closest matching: duckdb_cli-osx-universal.zip (34) (threshold: 40)
- ekristen 2y agoThanks for testing. I'm guessing you trimmed the output a bit there, it would normally say you can override using --no-score-check. I've fixed this and cut a new release, dist 1.0.5.
- tarasglek 2y ago--no-score-check didn't help, so i didn't include it. Works with your fix. I sent you an email to schedule a chat. Hope you don't mind. I'm very thankful for your work in this space. Will keep testing this in place of my eget workflows. Some thoughts so far: 1. ability to pick my own dir or to default to .local/bin . Eg I love using eget from ansible to drop various useful binaries 2. Ability to override github url, so I could do my own token management/cache in a centralized way. This would fix the biggest downside of such tools in CI. 3. It would be nice if there was an option to build go apps. Eg terraform(which you have a workaround for), and obscure stuff like https://github.com/Mic92/ssh-to-age/tree/main https://github.com/Mic92/ssh-to-age/tree/main . I love that go makes this easy https://bsky.app/profile/taras.glek.net/post/3lcau3yaftc2n https://bsky.app/profile/taras.glek.net/post/3lcau3yaftc2n 4. lazy mode. I have an ad-hoc script to lazily download various nice-to-have-but-heavy binaries into devcontainer on my team. Eg it's a bash script that checks if usql is in path, if it's not, it downloads a pinned version and runs it and passes args through. Given how fast most binaries are this is the only way to have all the binaries we need without wasting gigs of space of stuff that only 1 person on team may use.
- ekristen 2y agoInteresting, I'll look into the no-score-check. Technically there's a config file and you can set the path, it's not been tested a lot on custom paths and I haven't documented it yet, but if you look at the source it'll show you how. I'm working on a Distfile so be able to install multiple pinned versions at the same time, I'm also working on installing multiple binaries at the same time. I think compiling go is something I'll stay away from. I think it would be better to encourage folks like mic92 to use goreleaser and publish static binaries.
- 2y ago