Hi Collin,
> On 3/10/24 5:13 AM, Bruno Haible wrote:
> > automake_options = {x for y in configure_ac_automake_options for x in
> > y.split()}
>
> I've attached the fixed patch.
Thanks, applied.
> I would like to double check the regular expression I used:
>
> pattern = re.compile(r'^.*AM_INIT_AUTOMAKE\([\[ ]*([^\]\)]*).*$',
> re.MULTILINE)
>
> Compared to the sed one:
>
> s,^.*AM_INIT_AUTOMAKE([[ ]*\([^])]*\).*$,\1,p
This looks good to me. 'sed' accepts POSIX BREs, where '(' and '[' stand for
the literal '(' and '[' characters unless escaped.
Also, I applied the attached follow-up, in order to make the logic of the code
easier to follow. There was nothing wrong in your code; it's just to make it
more straightforward to read.
- There's no need to define 'pattern' before reading the file. So, define
it after reading the file.
- The 'base' variable is only needed in the 'if not found_subdir_objects'
case. So, define it only in this case.
- Make the two code blocks that read configure.ac and Makefile.am more
similar.
Bruno
>From 2045ee7288c2a4d0dbea090ae5b829557f96dc1a Mon Sep 17 00:00:00 2001
From: Bruno Haible <[email protected]>
Date: Mon, 11 Mar 2024 12:49:24 +0100
Subject: [PATCH] gnulib-tool.py: Make some code more straightforward.
* pygnulib/GLImport.py (GLImport.__init__): Reorder assignments and
conditions slightly.
---
ChangeLog | 6 ++++++
pygnulib/GLImport.py | 33 +++++++++++++++++----------------
2 files changed, 23 insertions(+), 16 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 9135b6b779..308f75a4ad 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2024-03-11 Bruno Haible <[email protected]>
+
+ gnulib-tool.py: Make some code more straightforward.
+ * pygnulib/GLImport.py (GLImport.__init__): Reorder assignments and
+ conditions slightly.
+
2024-03-11 Collin Funk <[email protected]>
gnulib-tool.py: Follow gnulib-tool changes, part 52.
diff --git a/pygnulib/GLImport.py b/pygnulib/GLImport.py
index de2961c55e..1dabccd201 100644
--- a/pygnulib/GLImport.py
+++ b/pygnulib/GLImport.py
@@ -261,31 +261,32 @@ class GLImport(object):
# Determine whether --automake-subdir is supported.
if self.config['automake_subdir']:
- automake_options = set()
+ found_subdir_objects = False
if self.config['destdir']:
- pattern = re.compile(r'^.*AM_INIT_AUTOMAKE\([\[ ]*([^\]\)]*).*$', re.MULTILINE)
with open(self.config['configure_ac'], encoding='utf-8') as file:
data = file.read()
+ pattern = re.compile(r'^.*AM_INIT_AUTOMAKE\([\[ ]*([^\]\)]*).*$', re.MULTILINE)
configure_ac_automake_options = pattern.findall(data)
if configure_ac_automake_options:
automake_options = { x
for y in configure_ac_automake_options
for x in y.split() }
- found_subdir_objects = 'subdir-objects' in automake_options
- if self.config['destdir']:
- base = self.config['destdir']
- else:
- base = '.'
- if not found_subdir_objects and isfile(joinpath(base, 'Makefile.am')):
- pattern = re.compile(r'^AUTOMAKE_OPTIONS[\t ]*=(.*)$', re.MULTILINE)
- with open(joinpath(base, 'Makefile.am'), encoding='utf-8') as file:
- data = file.read()
- automake_options = pattern.findall(data)
- if automake_options:
- automake_options = { x
- for y in automake_options
- for x in y.split() }
found_subdir_objects = 'subdir-objects' in automake_options
+ if not found_subdir_objects:
+ if self.config['destdir']:
+ base = self.config['destdir']
+ else:
+ base = '.'
+ if isfile(joinpath(base, 'Makefile.am')):
+ with open(joinpath(base, 'Makefile.am'), encoding='utf-8') as file:
+ data = file.read()
+ pattern = re.compile(r'^AUTOMAKE_OPTIONS[\t ]*=(.*)$', re.MULTILINE)
+ automake_options = pattern.findall(data)
+ if automake_options:
+ automake_options = { x
+ for y in automake_options
+ for x in y.split() }
+ found_subdir_objects = 'subdir-objects' in automake_options
if not found_subdir_objects:
raise GLError(21, None)
--
2.34.1