Gentoo Archives: gentoo-dev

From: Ionen Wolkens <ionen@g.o>
To: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] [PATCH 0/2] Add esed.eclass for sed that dies if caused no changes
Date: Fri, 03 Jun 2022 04:45:57
Message-Id: YpmR+80/l0evI9fo@eversor
In Reply to: Re: [gentoo-dev] [PATCH 0/2] Add esed.eclass for sed that dies if caused no changes by "Michał Górny"
1 On Fri, Jun 03, 2022 at 06:09:38AM +0200, Michał Górny wrote:
2 > On Tue, 2022-05-31 at 07:23 -0400, Ionen Wolkens wrote:
3 > > Often preferable to use patches so this happens, but sed have its
4 > > uses/convenience and this intend to help reduce the amount of old
5 > > broken seds causing issues that go unnoticed on bumps.
6 > >
7 > > Inspired by app-portage/iwdevtools' qa-sed (warns on any seds), but
8 > > this is for more deterministic use in ebuilds.
9 > >
10 > > Also slightly shortens sed use, -i is default, and no need to || die.
11 > > (see @EXAMPLE in eclass for a quick usage overview).
12 > >
13 >
14 > To be honest, I strongly dislike this. It really feels like trying to
15 > make an adapter for a square wheel, while the right solution would be to
16 > replace the wheel. On top of that, ton of evals which are pretty much
17 > a huge "no-no".
18
19 About evals, the two eval is just to silence this:
20
21 var=$(printf "\0")
22
23 The 2>/dev/null doesn't work without wrapping it, aka
24
25 eval 'var=$(printf "\0")' 2>/dev/null
26
27 No variables are expanded pre-eval so it's just evaluating a
28 static statement. eval can be removed, but it'll be noisy
29 if someone happens to sed binary files.
30
31 >
32 > Perhaps it would be better to forget about trying to work miracles with
33 > sed and instead write a trivial shell replacement for the most common
34 > use cases. One thing I'd love to see is a simple substitution command
35 > that would work for paths/CFLAGS on RHS without having to worry about
36 > them conflicting with the pattern delimiter.
37 >
38 > --
39 > Best regards,
40 > Michał Górny
41 >
42 >
43
44 --
45 ionen

Attachments

File name MIME type
signature.asc application/pgp-signature

Replies