Hacker News new | ask | show | jobs
by MyOutfitIsVague 472 days ago
Whew, you're not joking. This whole thing is 156 lines of Go. I'd probably have just used a shell script for this kind of thing.
2 comments

I think we can all agree that any Go program that just executes some other program, is way better than a shell script!

I mean, what if you needed to change the way it worked? With bash you'd have to open a text editor, change a line, and save the file! And on top of that you need to understand shell scripting!

With Go, you can set up your development environment, edit the source code, run the compiler, download the external dependencies, generate a new binary, and copy it to your server. And all this requires is learning the Go language and its development model. This is clearly more advanced, and thus better.

Haha, nice
I know ansible is not sexy or resource efficient, but it would be a handful of lines in a single task.yml and it would work reliably out of the box. Previously the part that was too much effort for me to be reliable was often bootstrapping the python environment on the host, but uv has been a game changer (at least it has been from my team) in terms of being able to efficiently and reliably ensure the exact python environment we want.
> > "156 lines of go"

> "Ansible ... would be a handful of lines"

How many lines are a handful? Ansible is a few hundred thousand.

If you're enjoying `uv`, consider `mise` for small helpers like the above.

Plays well with `uv`, handles this sort of thing with tasks:

https://mise.jdx.dev/tasks/