819 karma · joined July 9, 2021
Now we have a button in his nursery that will dim the lights, start playing white noise on a Google Home speaker, mark the start of a new nap on our Babybuddy instance, then turn off the lights after 30 seconds. When I press it again, it turns off the noise and stops the sleep tracking. If we didn't have Home Assistant we'd have to do all these things manually multiple times a day. Instead it just takes a single button press.
It's a small example, but things like this will keep popping up, and I'm looking forward to making them easier.
> a way for the EU to control US companies, extending their power beyond their jurisdiction
How are they extending their power beyond their jurisdiction, considering that this is something done in the EU to EU citizens?
I also see argument 2 a lot, and I've already addressed this in other comments, but sometimes you really just need to call a couple of commands while prepping some env vars or config files for convenience.
In those cases, reaching for Python or Go ends up being a lot of boilerplate for very little advantage, especially when you want to pass control over to other applications once you're done setting things up.
You provide a YAML file listing commands, subcommands, arguments, and flags, and it automatically generates a Bash script that can parse and validate them, provide help messages, and run your code for each command.
It also lets you keep the actual code for each command and subcommand in separate files, which are merged together into one distributable Bash script at generation time.
It's basically a templating system to auto-generate argument parsing so you don't have to solve that again or deal with things like optparse.
I need to build things that pass the bus audit: other people also have to understand them and work on them and, for better or for worse, Bash is a very popular lowest common denominator for many devs.
At its core it's just interacting with existing software like docker-compose, git, and some internal tools, which I find is still much, much easier to do with shell scripting than "proper" languages.
For all its shortcomings, I find that shell scripting is still the easiest way to put together a tool that needs to interact with a lot of other commands, no matter how large it ends up being. I love Python to death, but using `subprocess` for everything is the opposite of my idea of a good time.