summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBruno Haible <bruno@clisp.org>2022-08-06 23:01:36 +0200
committerBruno Haible <bruno@clisp.org>2022-08-06 23:01:36 +0200
commit9812027a9afa87b12eb3b7e3c28600e6eff7ca98 (patch)
tree07de1ae335d1d14ae8607d28a0d31ba036793cb5
parent860df12df83dd27ae2b83e0ed6b485c4ffbb640e (diff)
downloadgnulib-9812027a9afa87b12eb3b7e3c28600e6eff7ca98.tar.gz
gnulib-tool.py: Finish implementing options --vc-files, --no-vc-files.
* gnulib-tool.py (main): Accept options --vc-files, --no-vc-files. * pygnulib/GLImport.py (GLImport.__init__): Correct parsing of gl_VC_FILES directive. (GLImport.gnulib_cache): Don't treat the value False like None. (GLImport.execute): Skip the .gitignore file manipulations if vc_files is False.
-rw-r--r--ChangeLog8
-rwxr-xr-xgnulib-tool.py13
-rw-r--r--gnulib-tool.py.TODO4
-rw-r--r--pygnulib/GLConfig.py2
-rw-r--r--pygnulib/GLImport.py62
5 files changed, 53 insertions, 36 deletions
diff --git a/ChangeLog b/ChangeLog
index 0043103914..29da7a3a6e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,13 @@
2022-08-06 Bruno Haible <bruno@clisp.org>
+ gnulib-tool.py: Finish implementing options --vc-files, --no-vc-files.
+ * gnulib-tool.py (main): Accept options --vc-files, --no-vc-files.
+ * pygnulib/GLImport.py (GLImport.__init__): Correct parsing of
+ gl_VC_FILES directive.
+ (GLImport.gnulib_cache): Don't treat the value False like None.
+ (GLImport.execute): Skip the .gitignore file manipulations if vc_files
+ is False.
+
gnulib-tool.py: Finish implementing option --witness-c-macro.
* gnulib-tool.py (main): Accept option --witness-c-macro.
* pygnulib/GLConfig.py (GLConfig.__init__): Remove wrong type check of
diff --git a/gnulib-tool.py b/gnulib-tool.py
index 0bf72bf3a0..bb763a2245 100755
--- a/gnulib-tool.py
+++ b/gnulib-tool.py
@@ -363,6 +363,15 @@ def main():
dest='witness_c_macro',
default=None,
nargs=1)
+ # vc-files
+ parser.add_argument('--vc-files',
+ dest='vc_files',
+ default=None,
+ action='store_true')
+ parser.add_argument('--no-vc-files',
+ dest='vc_files',
+ default=None,
+ action='store_false')
# single-configure
parser.add_argument('--single-configure',
dest='single_configure',
@@ -553,7 +562,7 @@ def main():
or cmdargs.avoids != None or cmdargs.lgpl != None
or cmdargs.makefile_name != None
or cmdargs.macro_prefix != None or cmdargs.podomain != None
- or cmdargs.witness_c_macro != None))):
+ or cmdargs.witness_c_macro != None or cmdargs.vc_files != None))):
message = '%s: *** ' % constants.APP['name']
message += 'invalid options for --%s mode\n' % mode
message += 'Try \'gnulib-tool --help\' for more information.\n'
@@ -649,6 +658,7 @@ def main():
witness_c_macro = cmdargs.witness_c_macro
if witness_c_macro != None:
witness_c_macro = witness_c_macro[0]
+ vc_files = cmdargs.vc_files
avoids = cmdargs.avoids
if avoids != None:
avoids = [ module
@@ -659,7 +669,6 @@ def main():
single_configure = cmdargs.single_configure
docbase = None
conddeps = None
- vc_files = None
# Create pygnulib configuration.
config = classes.GLConfig(
diff --git a/gnulib-tool.py.TODO b/gnulib-tool.py.TODO
index c37fcbeebf..53915662b8 100644
--- a/gnulib-tool.py.TODO
+++ b/gnulib-tool.py.TODO
@@ -29,14 +29,14 @@ Implement the options:
--gnu-make
--tests-makefile-name
--automake-subdir
- --vc-files
- --no-vc-files
-h | --hardlink
--local-hardlink
-S | --more-symlinks
-H | --more-hardlinks
--help (same output)
+Remove exit() in GLImport.py.
+
--------------------------------------------------------------------------------
commit 76c7703cb2e9e0e803d1296618d8ab9e86e13d6c
diff --git a/pygnulib/GLConfig.py b/pygnulib/GLConfig.py
index 5f30a80797..216f2e05fa 100644
--- a/pygnulib/GLConfig.py
+++ b/pygnulib/GLConfig.py
@@ -276,7 +276,7 @@ class GLConfig(object):
elif key in ['libtool', 'lgpl', 'conddeps', 'symbolic', 'lsymbolic',
'libtests', 'dryrun']:
return False
- if key == 'vc_files':
+ elif key == 'vc_files':
return None
elif key == 'errors':
return True
diff --git a/pygnulib/GLImport.py b/pygnulib/GLImport.py
index 9de4b3b93c..b06fc5b603 100644
--- a/pygnulib/GLImport.py
+++ b/pygnulib/GLImport.py
@@ -141,9 +141,6 @@ class GLImport(object):
if 'gl_CONDITIONAL_DEPENDENCIES' in data:
self.cache.setCondDeps(True)
data = data.replace('gl_CONDITIONAL_DEPENDENCIES', '')
- if 'gl_VC_FILES' in data:
- self.cache.setVCFiles(True)
- data = data.replace('gl_VC_FILES', '')
if 'gl_WITH_TESTS' in data:
self.cache.enableInclTestCategory(TESTS['tests'])
data = data.replace('gl_WITH_TESTS', '')
@@ -202,6 +199,8 @@ class GLImport(object):
self.cache.setPoDomain(cleaner(tempdict['gl_PO_DOMAIN']))
if tempdict['gl_WITNESS_C_MACRO']:
self.cache.setWitnessCMacro(cleaner(tempdict['gl_WITNESS_C_MACRO']))
+ if tempdict['gl_VC_FILES']:
+ self.cache.setVCFiles(cleaner(tempdict['gl_VC_FILES']))
# Get cached filelist from gnulib-comp.m4.
destdir, m4base = self.config.getDestDir(), self.config.getM4Base()
@@ -542,7 +541,7 @@ class GLImport(object):
emit += 'gl_MACRO_PREFIX([%s])\n' % macro_prefix
emit += 'gl_PO_DOMAIN([%s])\n' % podomain
emit += 'gl_WITNESS_C_MACRO([%s])\n' % witness_c_macro
- if vc_files:
+ if vc_files != None:
emit += 'gl_VC_FILES([%s])\n' % vc_files
return constants.nlconvert(emit)
@@ -1334,33 +1333,34 @@ AC_DEFUN([%s_FILE_LIST], [\n''' % macro_prefix
if isfile(tmpfile):
os.remove(tmpfile)
- # Update the .cvsignore and .gitignore files.
- ignorelist = list()
- filetable['added'] = sorted(set(filetable['added']))
- filetable['removed'] = sorted(set(filetable['added']))
- for file in filetable['added']:
- directory, basename = os.path.split(file)
- ignorelist += [tuple([directory, '|A|', basename])]
- for file in filetable['removed']:
- directory, basename = os.path.split(file)
- ignorelist += [tuple([directory, '|R|', basename])]
- last_dir = ''
- last_dirs_added = list()
- last_dirs_removed = list()
- for row in ignorelist:
- next_dir = row[0]
- operand = row[1]
- filename = row[2]
- if next_dir != last_dir:
- self._done_dir_(last_dir, last_dirs_added, last_dirs_removed)
- last_dir = next_dir
- last_dirs_added = list()
- last_dirs_removed = list()
- if operand == '|A|':
- last_dirs_added += [filename]
- elif operand == '|R|':
- last_dirs_removed += [filename]
- self._done_dir_(last_dir, last_dirs_added, last_dirs_removed)
+ if vc_files != False:
+ # Update the .cvsignore and .gitignore files.
+ ignorelist = list()
+ filetable['added'] = sorted(set(filetable['added']))
+ filetable['removed'] = sorted(set(filetable['added']))
+ for file in filetable['added']:
+ directory, basename = os.path.split(file)
+ ignorelist += [tuple([directory, '|A|', basename])]
+ for file in filetable['removed']:
+ directory, basename = os.path.split(file)
+ ignorelist += [tuple([directory, '|R|', basename])]
+ last_dir = ''
+ last_dirs_added = list()
+ last_dirs_removed = list()
+ for row in ignorelist:
+ next_dir = row[0]
+ operand = row[1]
+ filename = row[2]
+ if next_dir != last_dir:
+ self._done_dir_(last_dir, last_dirs_added, last_dirs_removed)
+ last_dir = next_dir
+ last_dirs_added = list()
+ last_dirs_removed = list()
+ if operand == '|A|':
+ last_dirs_added += [filename]
+ elif operand == '|R|':
+ last_dirs_removed += [filename]
+ self._done_dir_(last_dir, last_dirs_added, last_dirs_removed)
exit()
# Finish the work.