From ab3425fae30f1e897540ee5986925f440b903736 Mon Sep 17 00:00:00 2001 From: Bruno Haible Date: Thu, 11 Apr 2024 01:55:05 +0200 Subject: [PATCH] gnulib-tool.py: Skip nonexistent modules instead of failing. * pygnulib/GLModuleSystem.py (GLModuleSystem.find): Use the same warning wording as gnulib-tool.sh. * pygnulib/GLImport.py (GLImport.gnulib_cache): Print the specified modules, not the base modules. (GLImport.prepare): Don't put None elements into base_modules. --- ChangeLog | 9 +++++++++ pygnulib/GLImport.py | 11 +++++++---- pygnulib/GLModuleSystem.py | 2 +- 3 files changed, 17 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index f8fcd38de7..ac263c611f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2024-04-10 Bruno Haible + + gnulib-tool.py: Skip nonexistent modules instead of failing. + * pygnulib/GLModuleSystem.py (GLModuleSystem.find): Use the same warning + wording as gnulib-tool.sh. + * pygnulib/GLImport.py (GLImport.gnulib_cache): Print the specified + modules, not the base modules. + (GLImport.prepare): Don't put None elements into base_modules. + 2024-04-10 Collin Funk gnulib-tool.py: Use function arguments instead of magic numbers. diff --git a/pygnulib/GLImport.py b/pygnulib/GLImport.py index 66d8eb922c..fdca884a08 100644 --- a/pygnulib/GLImport.py +++ b/pygnulib/GLImport.py @@ -523,8 +523,7 @@ class GLImport: podomain = self.config['podomain'] witness_c_macro = self.config['witness_c_macro'] vc_files = self.config['vc_files'] - modules = [ str(module) - for module in moduletable.getBaseModules() ] + modules = self.config['modules'] avoids = self.config['avoids'] emit += self.emitter.copyright_notice() emit += '''# @@ -808,8 +807,12 @@ AC_DEFUN([%s_FILE_LIST], [\n''' % macro_prefix m4base = self.config['m4base'] lgpl = self.config['lgpl'] verbose = self.config['verbosity'] - base_modules = sorted({ self.modulesystem.find(m) - for m in modules }) + base_modules = set() + for name in modules: + module = self.modulesystem.find(name) + if module is not None: + base_modules.add(module) + base_modules = sorted(base_modules) # Perform transitive closure. final_modules = self.moduletable.transitive_closure(base_modules) diff --git a/pygnulib/GLModuleSystem.py b/pygnulib/GLModuleSystem.py index ed96b9846c..01378259d9 100644 --- a/pygnulib/GLModuleSystem.py +++ b/pygnulib/GLModuleSystem.py @@ -110,7 +110,7 @@ class GLModuleSystem: raise GLError(3, module) else: # if not self.config['errors'] sys.stderr.write('gnulib-tool: warning: ') - sys.stderr.write('file %s does not exist\n' % str(module)) + sys.stderr.write("module %s doesn't exist\n" % str(module)) def file_is_module(self, filename: str) -> bool: '''Given the name of a file in the modules/ directory, return true -- 2.39.5