bug#26205: Unhappy with deprecating GREP_OPTIONS (original) (raw)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
From: | Eric Blake |
---|---|
Subject: | bug#26205: Unhappy with deprecating GREP_OPTIONS |
Date: | Tue, 21 Mar 2017 11:05:21 -0500 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 |
On 03/21/2017 10:39 AM, Thomas Güttler wrote:
* Strategy 1: GREPOPTIONS. But this is deprecated. See http://www.gnu.org/software/grep/manual/htmlnode/Environment-Variables.html
* Stragegy 2: GREPCOLORS look like a solution at the first sight, but this does something different. * Strategy 3: alias. This does not work for
find ... | xargs grep
, since xargs does not evaluate aliases.
It can if you teach it to (assuming you are using a sh-like shell):
alias xargs='xargs '
(I can't help you if you are using a csh-like shell)
* Strategy 4: Write a simple wrapper script. No, I think this is too dirty and makes more trouble than it solves.
What trouble does it cause? This our preferred recommendation, by the way.
* Strategy 5: patch the source code - No
Why not? It's open source, so you are free to do so, for your local setup.
* Strategy 6: Contact grep developers, ask for a replacement of GREPOPTIONS
Which you've done. But it won't help, because we made a conscious decision to kill environment variables that have the chance of breaking scripts, and we are unlikely to be persuaded to change our minds.
Why is GREPOPTIONS deprecated?
Because it has the tendency to break unsuspecting scripts that don't sanitize GREP_OPTIONS out of their environment. Environment variables that change default output are very dangerous. Environment variables that only modify behavior that has to be opted into (like GREP_COLORS) are not as bad, but once you are explicitly opting into something, a wrapper script is a lot more direct than a wrapper script + an environment variable.
I guess this can do confusing things if you exclude directories via this environment variable.
Yes, that was one of the things known to break scripts.
But setting color=auto looks like something which does not do harm.
You're right that 'color=auto' tends to not break scripts, but 'color=always' does, and it gets rather hard, rather fast, if you try to special-case WHICH aspects of GREP_OPTIONS are safe, vs. just a blanket statement that GREP_OPTIONS is in general unsafe.
-- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature
- bug#26205: Unhappy with deprecating GREP_OPTIONS, Thomas Güttler, 2017/03/21
- bug#26205: Unhappy with deprecating GREP_OPTIONS, arnold, 2017/03/21
- bug#26205: Unhappy with deprecating GREP_OPTIONS,Eric Blake <=
- bug#26205: Unhappy with deprecating GREP_OPTIONS, Paul Eggert, 2017/03/21
- Prev by Date:bug#26205: Unhappy with deprecating GREP_OPTIONS
- Next by Date:bug#26205: Unhappy with deprecating GREP_OPTIONS
- Previous by thread:bug#26205: Unhappy with deprecating GREP_OPTIONS
- Next by thread:bug#26205: Unhappy with deprecating GREP_OPTIONS
- Index(es):