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