xref: /dpdk/buildtools/gen-pmdinfo-cfile.py (revision c78471cd061a0f64db006c538be34536bc66c12a)
1e6e9730cSDmitry Kozlyuk#!/usr/bin/env python3
2e6e9730cSDmitry Kozlyuk# SPDX-License-Identifier: BSD-3-Clause
3e6e9730cSDmitry Kozlyuk# Copyright (c) 2020 Dmitry Kozlyuk <dmitry.kozliuk@gmail.com>
4e6e9730cSDmitry Kozlyuk
5e6e9730cSDmitry Kozlyukimport os
6e6e9730cSDmitry Kozlyukimport subprocess
7e6e9730cSDmitry Kozlyukimport sys
8e6e9730cSDmitry Kozlyukimport tempfile
9e6e9730cSDmitry Kozlyuk
103feefc80SDmitry Kozlyuk_, tmp_root, ar, archive, output, *pmdinfogen = sys.argv
113feefc80SDmitry Kozlyukwith tempfile.TemporaryDirectory(dir=tmp_root) as temp:
12*c78471cdSBruce Richardson    paths = []
13*c78471cdSBruce Richardson    for name in subprocess.run([ar, "t", archive], stdout=subprocess.PIPE,
14*c78471cdSBruce Richardson                               check=True).stdout.decode().splitlines():
15*c78471cdSBruce Richardson        if os.path.exists(name):
16*c78471cdSBruce Richardson            paths.append(name)
17*c78471cdSBruce Richardson        else:
18*c78471cdSBruce Richardson            subprocess.run([ar, "x", os.path.abspath(archive), name],
19*c78471cdSBruce Richardson                           check=True, cwd=temp)
20*c78471cdSBruce Richardson            paths.append(os.path.join(temp, name))
21e6e9730cSDmitry Kozlyuk    subprocess.run(pmdinfogen + paths + [output], check=True)
22