]> git.ipfire.org Git - thirdparty/gnulib.git/commitdiff
vcs-to-changelog: Allow loading of custom quirks file
authorSiddhesh Poyarekar <siddhesh@gotplt.org>
Thu, 16 Jan 2020 07:19:55 +0000 (12:49 +0530)
committerBruno Haible <bruno@clisp.org>
Thu, 16 Jan 2020 20:22:13 +0000 (21:22 +0100)
gnulib does not have a quirks file and if the scripts are not copied
over to the project tree, it may never find the quirks file in the
right place.  Add a flag to vcs_to_changelog.py to allow one to
specify the location of the quirks file instead.

* build-aux/vcs_to_changelog.py: New commandline option -q.

ChangeLog
build-aux/vcs_to_changelog.py

index b8578488ff61e070365cc43cb5afd63bf2a69529..53e9d4ca2fdcf400bcaa27ee940b70e2eeb6ddf3 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2020-01-16  Siddhesh Poyarekar  <siddhesh@gotplt.org>
+
+       vcs-to-changelog: Allow loading of custom quirks file.
+       * build-aux/vcs_to_changelog.py: New commandline option -q.
+
 2020-01-16  Siddhesh Poyarekar  <siddhesh@gotplt.org>
 
        vcs-to-changelog: Fix formatting of ChangeLog output.
index d5931e4e9111a9d38a05824ae7fdb1f1b0b9334d..bf4bc7cf64c9897e4a56758209f5821434b377c4 100755 (executable)
@@ -78,17 +78,8 @@ class ProjectQuirks:
     # header file that is only assembly code, which breaks the C parser.
     IGNORE_LIST = ['ChangeLog']
 
-
-# Load quirks file.  We assume that the script is run from the top level source
-# directory.
 sys.path.append('/'.join([os.path.dirname(os.path.realpath(__file__)),
                 'vcstocl']))
-try:
-    from vcstocl_quirks import *
-    project_quirks = get_project_quirks(debug)
-except:
-    project_quirks = ProjectQuirks()
-
 
 def main(repo, frontends, refs):
     ''' ChangeLog Generator Entry Point.
@@ -107,6 +98,9 @@ if __name__ == '__main__':
     parser.add_argument('-d', '--debug', required=False, action='store_true',
                      help='Run the file parser debugger.')
 
+    parser.add_argument('-q', '--quirks', required=False, type=str,
+                     help='Load a quirks file.')
+
     args = parser.parse_args()
 
     debug.debug = args.debug
@@ -115,6 +109,21 @@ if __name__ == '__main__':
         debug.eprint('Two refs needed to get a ChangeLog.')
         sys.exit(os.EX_USAGE)
 
+    # Load quirks file.  We assume that the script is run from the top level source
+    # directory.
+    if args.quirks:
+        import importlib.util
+        spec = importlib.util.spec_from_file_location("vcstocl_quirks", args.quirks)
+        vcstocl_quirks = importlib.util.module_from_spec(spec)
+        spec.loader.exec_module(vcstocl_quirks)
+        project_quirks = vcstocl_quirks.get_project_quirks(debug)
+    else:
+        try:
+            from vcstocl_quirks import *
+            project_quirks = get_project_quirks(debug)
+        except:
+            project_quirks = ProjectQuirks()
+
     REPO = {'git': GitRepo(project_quirks.IGNORE_LIST, debug)}
 
     fe_c = frontend_c.Frontend(project_quirks, debug)