radion is an internet radio CLI client, written in Bash.
https://gitlab.com/christosangel/radion
Radion can be customized as far as the station selecting program is concerned. The user can choose between:
- read
- fzf
- rofi
- dmenu
Update: Introduced new feature: customizing prompt text for fzf dmenu and rofi.
Update: MacOS support added now thanks to Andrea Schäfer
Also, I was forced by my daughter to add some anime radio stations…
My entire homelab env is written in “pure bash”. Bare metal deployments, creation, build, deployment, update, and backup, of docker containers (which are also just convenience wrappers around other pure bash projects of mine.). Etc…
I do it because I got sick of losing data, work, workflow or convenience to black boxes I didn’t create myself. Hell, even with my third party projects like Plex I have a lot of bash automation around extracting playlists from the internal sqlite db, etc. It really shifts your perspective on what’s possible when you build things by hand yourself.
I’ve been working as a dev for 8+ years, been programming for much longer. Yes, many things are possible with bash. Many things are also possible using straight assembly, but nobody does that - for good reasons…
Many of those problems you mentioned have well established, open source solutions that should not end up in lost work or data. Building things yourself also has the downside of maintaining those things, and dealing with your own (inevitable) failures yourself too. I’d rather trust established solutions for things as complex as provisioning than roll my own. But whatever works for you.
If I were to write that much code by hand, I’d just choose something saner than bash, purely from a language perspective. That’s all.
It’s not like I don’t use open source solutions, I use docker for example rather than automating chroots/cgroups by hand in bash. I just use them as little as possible. While you’re correct, I don’t lose data in a well designed open source project, I do lose work, workflow, and convenience when those projects change or shut down. What’s really nice about the pure bash solutions is they’re entirely portable once you have them dialed in. If I wanted to switch from docker back to vms or forward to something like harvester/rancher/k3s I’d be able to port the projects very trivially. If I built everything around one of those projects in mind, all of my work would rely on it not changing. I acknowledge it’s sometimes a little more work but it’s work that I get to decide when to do, not when the project maintainers decide it for me.