#!/usr/bin/env python3 # SPDX-License-Identifier: BSD-3-Clause # Copyright(c) 2021 Intel Corporation import os import sys import shutil from os.path import abspath, dirname, join def fixup_library_renames(contents): """since library directory names have dropped the 'librte_' prefix, add those prefixes back in for patches than need it""" modified = False # first get all the DPDK libs to build up replacement list # stored in function attribute between calls try: libdirs = fixup_library_renames.libdirs except AttributeError: dpdk_libdir = abspath(join(dirname(sys.argv[0]), '..', 'lib')) for root, dirs, files in os.walk(dpdk_libdir): fixup_library_renames.libdirs = dirs libdirs = dirs break for i in range(len(contents)): # skip over any lines which don't have lib in it if not "lib/" in contents[i]: continue for d in libdirs: if f'lib/{d}' in contents[i]: modified = True contents[i] = contents[i].replace(f'lib/{d}', f'lib/librte_{d}') return modified def main(): "takes list of patches off argv and processes each" for patch in sys.argv[1:]: modified = False with open(patch) as f: contents = f.readlines() modified |= fixup_library_renames(contents) # other functions to change the patch go here if not modified: continue shutil.copyfile(f'{patch}', f'{patch}.bak') with open(patch, 'w') as f: f.writelines(contents) if __name__ == "__main__": main()