Hacker News new | past | comments | ask | show | jobs | submit login

the dist project referenced above supports both caching and authentication for both github and gitlab.



yes, i added it to my blog post, will investigate


cool. 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.


DuckDB 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)


I thought that no one in right mind will use underscore in the binary name, but it seems that I had too much faith in humanity. Fixed:

     gah install duckdb/duckdb
    Fetching release info for: duckdb/duckdb [latest]
    Found release: v1.1.3 Bugfix Release
    Several download URLs were found which match your OS and arch. Please select one:
    1) https://github.com/duckdb/duckdb/releases/download/v1.1.3/duckdb_cli-linux-    amd64.zip
    2) https://github.com/duckdb/duckdb/releases/download/v1.1.3/libduckdb-linux-amd64.zip
    #? 1
    Downloading: duckdb_cli-linux-amd64.zip
    ##################### 100,0%
    Extracting: duckdb_cli-linux-amd64.zip
    Installing: duckdb
    Give a new name or keep 'duckdb'? (Leave empty to keep the same)
    New name: 
    Installed: duckdb
    Done!


Thanks 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.


--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 . I love that go makes this easy 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.


Interesting, 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.


`gogo` get it right :)




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: