mozilla/cipherscan

Request: explain why Bash 4 is needed.

lgarron opened this issue · 4 comments

Bash version 4 is required to run cipherscan.
Please upgrade your version of bash (ex: brew install bash).

I'm sure there's a good reason, but this just makes me feel like cipherscan wants to trample on my system because it's lazy. If it gave me more useful information, I could evaluate this request better.

(However, thanks very much for having such a clear message in the first place.)

I wish we didn't need to do that, because it makes life difficult to everyone on OSX. But bash 4 provides tons of features that we use all over cipherscan, and there's no way around it other than rewrite it in another language.The lazyness here really come from Apple that has not updated from Bash 3 in years... but that doesn't help you.So, the answer to your question is that we use modern bash in cipherscan, which requires Bash 4.

Ah. Would you be up for a PR changing the string to something that emphasized that the core functionality is implemented in Bash 4 (rather than just some shell-based side functionality)? It's clear to me from the code now, but I assumed that ./cipherscan was just a wrapper at first.

Strawman:

cipherscan is implemented as a bash script and requires Bash 4 to run correctly.
Please upgrade your version of bash (ex: brew install bash).

Absolutely!

And, yes, ./cipherscan was just a wrapper at first... a long long time ago in a galaxy far far away...

current code does detect it and refuses to run if the version is too old:

if [[ ${BASH_VERSINFO[0]} -lt 4 ]]; then