python_dependencies.py

This commit is contained in:
Anton Bolshakov 2021-05-26 09:15:55 +08:00
parent d529960d21
commit ab164c4529
No known key found for this signature in database
GPG key ID: 32BDCED870788F04

View file

@ -13,16 +13,17 @@ __email__ = "blshkv@pentoo.ch"
def portage_mapping(search):
mapping = {
"dev-python/prompt-toolkit": "dev-python/prompt_toolkit",
"dev-python/androguard": "dev-util/androguard",
"dev-python/bs4": "dev-python/beautifulsoup:4",
"dev-python/ruamel.yaml": "dev-python/ruamel-yaml",
"dev-python/pycrypto": "dev-python/pycryptodome",
"dev-python/Django": "dev-python/django",
"dev-python/frida": "dev-python/frida-python",
"dev-python/lief": "dev-util/lief",
"dev-python/androguard": "dev-util/androguard",
"dev-python/tls-parser": "dev-python/tls_parser",
"dev-python/prompt-toolkit": "dev-python/prompt_toolkit",
"dev-python/pycrypto": "dev-python/pycryptodome",
"dev-python/pyOpenSSL": "dev-python/pyopenssl",
"dev-python/pypykatz": "app-exploits/pypykatz",
"dev-python/ruamel.yaml": "dev-python/ruamel-yaml",
"dev-python/tls-parser": "dev-python/tls_parser",
}
for key in mapping:
@ -30,12 +31,18 @@ def portage_mapping(search):
return search
def main():
# setup.py can be generated by flit for pyproject.toml projects as a workaround
setup = distutils.core.run_setup("./setup.py")
# print(setup.install_requires)
if not hasattr(setup, 'install_requires') or len(setup.install_requires)==0:
print("RDEPEND=\"\"")
sys.exit(1)
#Debug:
#print(setup.install_requires)
print("RDEPEND=\"")
for i in setup.install_requires:
for i in setup.install_requires:
#match: my-na.me<5.0.0,>=4.0.0
#and match: my-na.me
pattern = '([-.\w]+)(>=|>|==|=<|<)?([\d.]+)?(,)?(>=|>|==|=<|<)?([\d.]+)?'
@ -45,13 +52,12 @@ def main():
# print("Match0:", match.group(0) )
# else:
# print("pattern not found")
if match.group(2) == ">=" or match.group(2) == "==":
print("\t>="+portage_mapping("dev-python/"+match.group(1))+"-"+ match.group(3)+"[${PYTHON_USEDEP}]")
elif match.group(5) == ">=" or match.group(5) == "==":
print("\t>="+portage_mapping("dev-python/"+match.group(1))+"-"+ match.group(6)+"[${PYTHON_USEDEP}]")
elif match.group(1):
print("\t"+portage_mapping("dev-python/"+match.group(1)))
print("\t"+portage_mapping("dev-python/"+match.group(1)+"[${PYTHON_USEDEP}]"))
else:
print("Error: fail to detect dependency name")
sys.exit(1)