It's time for me to re-read the man page for bash. I was not aware of BASH_REMATCH, wow. It's in the first snippet on the linked page, and would save the hassle of using multiple var expansions of the %% and ## et al sort.
tecleandor 6 hours ago [-]
Oh yeah! I was unaware too! Nowadays I quickly jump to python instead of using Bash even for the simplest of scripts , but this could help creating tiny and easy to understand scripts for some integrations...
enriquto 6 hours ago [-]
> I quickly jump to python instead of using Bash even for the simplest of scripts
You don't seem to respect the old, venerable, well-tested adage: "once your shell script becomes too complex, switch to a real programming language like python".
Or, the zen version (formally equivalent, but with quite a different tone): "once your program becomes sufficiently simple, turn it into a beautiful shell script".
skydhash 4 hours ago [-]
The true power of shell script is to coordinate programs. Once you find yourself altering data with the shell constructs, that's the sign to use $LISP instead.
> [bash] is rather large and slow to start up and operate by comparison with dash
For more complex regular expressions, you can use `sed`.
--
It's all a matter of context. Sometimes simple ## and %% param substitutions are the best tool for the job.
I think bash is a fantastic interactive shell and a lousy script runner.
Calzifer 33 minutes ago [-]
Bash is slower than other POSIX compatible shells but once you start running external commands for any substring or replace operation you loose much of this performance edge since forking is comparable slow.
One reason why I personally prefer to use Bashisms like ${x//str/replace} or [[ $value =~ $pattern ]] instead of doing the common x=$(echo $x | sed s/str/replace/) which has to launch two processes just for the sake of avoiding Bashism. (or grep -oP ... which is nice but a BASH_REMATCH is often simpler)
ramon156 2 hours ago [-]
I respect both the DIY's and the HA fans.
That aside, I'm currently contemplating whether running TrueNAS Scale for web apps is really necessary. I like the fact that I only need to click a few buttons or fill in a few fields, but on the otherhand my setup can be kept inside a docker-compose.yml
We'll never know, since I like the safety of running my apps through something like TrueNAS Scale. It feels professional
sunshine-o 6 hours ago [-]
MQTT is a fantastic protocol.
I basically do the same as the author but use nutshell and its powerful pattern matching [0] as the router
The hate for the HomeAssistant OS is misplaced. It's just an appliance that manages its own software packages. Like for example the author could have set up Zigbee2MQTT entirely through the web GUI.
skgough 51 minutes ago [-]
HomeAssistant's dependency requirements are so complex as to make a deployment of it essentially read-only. Trying to mod it with HACS is so hard that I gave up even though I write python for a living. I can't recommend it to anyone that doesn't know how to use linux at an expert level. This detracts from it's mission IMO; I would like to tell my family to use it instead of Google Home or Amazon whatever but it is so fragile that I can't do that in good conscience.
Spivak 40 minutes ago [-]
My install has been essentially maintenance free for years. I don't imagine many casual users that just want an app/gui for their smart outlets will be reaching for HACS. HA even warns you when you install HACS that you're voiding all the warranties.
jrm4 1 hours ago [-]
It's really not though; I went with it for a while then it did this weird diverging thing with updates and full versions that I still don't fully understand because I just got fed up with it.
nomel 56 minutes ago [-]
It really is the design and intent, though. What year was this? Things are much more stable than in the early days.
sunshine-o 6 hours ago [-]
For those using termux, termux widgets are exposed to Android device control so you don't need the MqttDroid app
Arch-TK 6 hours ago [-]
Interesting... I didn't know about this, although I was pretty satisfied with the simplicity of MqttDroid (after I fixed a bug: https://github.com/LightJockey/MqttDroid/pull/3). Will investigate to compare.
You don't seem to respect the old, venerable, well-tested adage: "once your shell script becomes too complex, switch to a real programming language like python".
Or, the zen version (formally equivalent, but with quite a different tone): "once your program becomes sufficiently simple, turn it into a beautiful shell script".
https://wiki.ubuntu.com/DashAsBinSh#Why_was_this_change_made...
> [bash] is rather large and slow to start up and operate by comparison with dash
For more complex regular expressions, you can use `sed`.
--
It's all a matter of context. Sometimes simple ## and %% param substitutions are the best tool for the job.
I think bash is a fantastic interactive shell and a lousy script runner.
One reason why I personally prefer to use Bashisms like ${x//str/replace} or [[ $value =~ $pattern ]] instead of doing the common x=$(echo $x | sed s/str/replace/) which has to launch two processes just for the sake of avoiding Bashism. (or grep -oP ... which is nice but a BASH_REMATCH is often simpler)
That aside, I'm currently contemplating whether running TrueNAS Scale for web apps is really necessary. I like the fact that I only need to click a few buttons or fill in a few fields, but on the otherhand my setup can be kept inside a docker-compose.yml
We'll never know, since I like the safety of running my apps through something like TrueNAS Scale. It feels professional
I basically do the same as the author but use nutshell and its powerful pattern matching [0] as the router
-[0] https://www.nushell.sh/cookbook/pattern_matching.html#patter...