Earlier quoted context omitted.
WireGuard doesn't require bash. The main configuration utility, wg(8), is written in vanilla C. However, the tools ship with a little convenience script, called wg-quick(8), which is indeed written in bash. It started out as the thing I was using to configure my laptop on the go, but then others found it helpful. It's by no means essential or central to WireGuard, and lots of people use different things to wrap wg(8)…
Based on your documents[1] of Mac OS, it looks very like wireguard requires bash version 4 or newer because wireguard-tools will install bash as dependency. Maybe you should edit the docs or shouldn't deliver wireguard-tools? $ brew install wireguard-tools [1] - https://www.wireguard.com/install/
Bash 5.0 released
301–306 of 306 posts
Re: Bash 5.0 released
#302Earlier quoted context omitted.
Because one of the scenarios we were talking about is interactive use - i.e. command prompt. Current directory (and other implicit state like that) is convenient there, and removing it would make it that much harder to use.
If your workflow is like: 1. Manipulate current directory 2. Run some program 3. Manipulate current directory again 4. Run yet another program... You can actually consider current directory as immutable already. It became "badly mutable" for example if you manipulate the current directory and this change is observable from a program point of view which is already running. Would that be really useful? To clarify I am…
Re: Bash 5.0 released
#303Earlier quoted context omitted.
It's odd not including Plan 9 here. But I guess that is the fate of Plan 9.
Yeah, I did not include anything without at least some recent development. AROS and plan9 both got cut for that reason. I was on the fence about including ReactOS but wound up not including that either.
Re: Bash 5.0 released
#304Earlier quoted context omitted.
If your workflow is like: 1. Manipulate current directory 2. Run some program 3. Manipulate current directory again 4. Run yet another program... You can actually consider current directory as immutable already. It became "badly mutable" for example if you manipulate the current directory and this change is observable from a program point of view which is already running. Would that be really useful? To clarify I am…
I don't see how. The suggestion was to use a Haskell-like scripting language for interactive use on the command prompt. Note, we're not talking about apps that run from that prompt; we're talking about the shell itself. And all shells today have mutable global state in form of current directory (and pushd/popd stack, usually).
Being immutable doesn't mean that everything is static but that things aren't changeable in place. So instead of having a global mutable state, you have this local state which you can alter by creating new instances and passing them around. In the end, the difference is that on what scope changes are observable and how that constraint effects on your design. In some sense: mutable = changes are uncontrollable, immutable = changes are controllable.
Re: Bash 5.0 released
#305Earlier quoted context omitted.
How does function sound for a syntactic sugar? $ today() { date +%F; } $ echo Today, $(today) is a great day! Today, 2019-01-08 is a great day!
Not as good. I use $today a lot in file and directory names, The overhead of having to type $(today) rather than $today would be, for me , significant. I do have a workaround for this particular case: PROMPT_COMMAND='today=$(printf "%(%F)T\n" -1)' but it only works in bash 4.2 and later. I could use PROMPT_COMMAND='today=$(date +%F)' but I'm trying to avoid executing an external command on every prompt. (Maybe the ov…
PROMPT_COMMAND='printf -v today "%(%F)T" -1'
printf's "-v" option was added in bash 4.0.printf's "%(...)T" format was added in bash 4.2.
The "-1" argument became optional in bash 4.3.
So here's what I now have in my .bashrc :
if [[ "$BASH_VERSION" > "4.2" ]] ; then
PROMPT_COMMAND='printf -v today "%(%F)T" -1'
else
PROMPT_COMMAND='today=$(date +%F)'
fi
(The "> 4.2" test is true for bash 4.2 and later, since the value of $BASH_VERSION for 4.2 is "4.2.0(1)-release". The ">" does a string comparison. I'll have to revisit this when and if there's a bash version 10.0, probably using $BASH_VERSINFO.)Re: Bash 5.0 released
#306Earlier quoted context omitted.
That command makes my eyes twitch. This sort of "download random stuff from internet, then pipe them to ruby/perl/python" madness should end, like right now. I'm assuming you're a reasonable person who knows what that commands does. Can you really not see how people can misuse commands like this to execute arbitrary code on people's computers, even experienced engineers if they carelessly copy-paste code like this. A…
That command curls a ruby file from the Homebrew repository on Github. If that Github repo (or Github) is compromised, then no matter how you installed homebrew, you are going to get hacked the next time you run `brew update`, which by default is run on every `brew install`. For me, the odds of that repo being compromised for long enough are outweighed by the convenience. This has been brought up on HN before and I'm…
I’m pretty sure at least 50% would merrily copy & paste it in their shell.