Re: [gentoo-dev] [PATCH 1/2] python-utils-r1.eclass: Simplify sed call in python_fix_shebang
On Sat, 15 Sep 2018 16:27:28 +0200 Michał Górny wrote: > On Fri, 2018-09-14 at 23:44 +0100, James Le Cuirot wrote: > > There's no need for two separate sed calls here. > > --- > > eclass/python-utils-r1.eclass | 6 +- > > 1 file changed, 1 insertion(+), 5 deletions(-) > > > > diff --git a/eclass/python-utils-r1.eclass b/eclass/python-utils-r1.eclass > > index e3cf82b4b58f..121f2382ba78 100644 > > --- a/eclass/python-utils-r1.eclass > > +++ b/eclass/python-utils-r1.eclass > > @@ -1247,11 +1247,7 @@ python_fix_shebang() { > > if [[ ! ${error} ]]; then > > # We either want to match ${from} followed by > > space > > # or at end-of-string. > > - if [[ ${shebang} == *${from}" "* ]]; then > > - sed -i -e "1s:${from} :${EPYTHON} :" > > "${f}" || die > > - else > > - sed -i -e "1s:${from}$:${EPYTHON}:" > > "${f}" || die > > - fi > > + sed -i -e "1s:${from}\( \|\$\):${EPYTHON}\1:" > > "${f}" || die > > Hmm, I wonder if we could just utilize '\b' here. I also considered it but that would match /, which is no good. For example, it would replace python in /usr/python/foo. I am now working on a new approach to better accommodate my cross stuff that would supersede this anyway but it's not ready yet. > > any_fixed=1 > > else > > eerror "The file has incompatible shebang:" -- James Le Cuirot (chewi) Gentoo Linux Developer pgpAKEeU7xASq.pgp Description: OpenPGP digital signature
Re: [gentoo-dev] [PATCH 1/2] python-utils-r1.eclass: Simplify sed call in python_fix_shebang
On Fri, 2018-09-14 at 23:44 +0100, James Le Cuirot wrote: > There's no need for two separate sed calls here. > --- > eclass/python-utils-r1.eclass | 6 +- > 1 file changed, 1 insertion(+), 5 deletions(-) > > diff --git a/eclass/python-utils-r1.eclass b/eclass/python-utils-r1.eclass > index e3cf82b4b58f..121f2382ba78 100644 > --- a/eclass/python-utils-r1.eclass > +++ b/eclass/python-utils-r1.eclass > @@ -1247,11 +1247,7 @@ python_fix_shebang() { > if [[ ! ${error} ]]; then > # We either want to match ${from} followed by > space > # or at end-of-string. > - if [[ ${shebang} == *${from}" "* ]]; then > - sed -i -e "1s:${from} :${EPYTHON} :" > "${f}" || die > - else > - sed -i -e "1s:${from}$:${EPYTHON}:" > "${f}" || die > - fi > + sed -i -e "1s:${from}\( \|\$\):${EPYTHON}\1:" > "${f}" || die Hmm, I wonder if we could just utilize '\b' here. > any_fixed=1 > else > eerror "The file has incompatible shebang:" -- Best regards, Michał Górny signature.asc Description: This is a digitally signed message part
[gentoo-dev] [PATCH 1/2] python-utils-r1.eclass: Simplify sed call in python_fix_shebang
There's no need for two separate sed calls here. --- eclass/python-utils-r1.eclass | 6 +- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/eclass/python-utils-r1.eclass b/eclass/python-utils-r1.eclass index e3cf82b4b58f..121f2382ba78 100644 --- a/eclass/python-utils-r1.eclass +++ b/eclass/python-utils-r1.eclass @@ -1247,11 +1247,7 @@ python_fix_shebang() { if [[ ! ${error} ]]; then # We either want to match ${from} followed by space # or at end-of-string. - if [[ ${shebang} == *${from}" "* ]]; then - sed -i -e "1s:${from} :${EPYTHON} :" "${f}" || die - else - sed -i -e "1s:${from}$:${EPYTHON}:" "${f}" || die - fi + sed -i -e "1s:${from}\( \|\$\):${EPYTHON}\1:" "${f}" || die any_fixed=1 else eerror "The file has incompatible shebang:" -- 2.18.0