From 327b05574f0dc1b1046c72401256ce5afd3e3247 Mon Sep 17 00:00:00 2001
From: Marcel Telka <marcel@telka.sk>
Date: Tue, 02 Apr 2024 11:21:42 +0200
Subject: [PATCH] python/PyNUTClient: update to 2.8.2

---
 tools/userland-mangler |   23 +++++++++++++++++------
 1 files changed, 17 insertions(+), 6 deletions(-)

diff --git a/tools/userland-mangler b/tools/userland-mangler
index abfb9f0..8cdbbe3 100755
--- a/tools/userland-mangler
+++ b/tools/userland-mangler
@@ -300,8 +300,15 @@
                              re.MULTILINE|re.DOTALL)
         return cddl_re.sub('', text)
 
-def mangle_path(manifest, action, src, dest):
+def do_ctfconvert(converter, file):
+        args = [converter, '-i', '-m', '-k', file]
+        print(*args, file=sys.stderr)
+        subprocess.call(args)
+
+def mangle_path(manifest, action, src, dest, ctfconvert):
         if elf.is_elf_object(src):
+                if ctfconvert is not None:
+                        do_ctfconvert(ctfconvert, src)
                 mangle_elf(manifest, action, src, dest)
         else:
                 # a 'text' document (script, man page, config file, ...
@@ -329,7 +336,7 @@
 #
 # mangler.bypass = (true|false)
 #
-def mangle_paths(manifest, search_paths, destination):
+def mangle_paths(manifest, search_paths, destination, ctfconvert):
         for action in manifest.gen_actions_by_type("file"):
                 bypass = action.attrs.pop('mangler.bypass', 'false').lower()
                 if bypass == 'true':
@@ -351,7 +358,8 @@
                         if directory != destination:
                                 src = os.path.join(directory, path)
                                 if os.path.isfile(src):
-                                        mangle_path(manifest, action, src, dest)
+                                        mangle_path(manifest, action,
+                                                    src, dest, ctfconvert)
                                         break
 
 def load_manifest(manifest_file):
@@ -372,10 +380,11 @@
         search_paths = []
         destination = None
         manifests = []
+        ctfconvert = None
 
         try:
-                opts, args = getopt.getopt(sys.argv[1:], "D:d:m:",
-                        ["destination=", "search-directory=", "manifest="])
+                opts, args = getopt.getopt(sys.argv[1:], "c:D:d:m:",
+                        ["ctf=", "destination=", "search-directory=", "manifest="])
         except getopt.GetoptError as err:
                 print(str(err))
                 usage()
@@ -393,6 +402,8 @@
                                 usage()
                         else:
                                 manifests.append(manifest)
+                elif opt in [ "-c", "--ctf" ]:
+                        ctfconvert = arg
                 else:
                         usage()
 
@@ -400,7 +411,7 @@
                 usage()
 
         for manifest in manifests:
-                mangle_paths(manifest, search_paths, destination)
+                mangle_paths(manifest, search_paths, destination, ctfconvert)
                 print(manifest)
 
         sys.exit(0)

--
Gitblit v1.9.3