From e28638c18a55f28267a39a03897e6749eaa833df Mon Sep 17 00:00:00 2001 From: Anton Bolshakov Date: Wed, 26 May 2021 01:30:37 +0800 Subject: [PATCH] python_dependencies.py --- scripts/python_dependencies.py | 40 +++++++++++++++++++++------------- 1 file changed, 25 insertions(+), 15 deletions(-) diff --git a/scripts/python_dependencies.py b/scripts/python_dependencies.py index 101b2e302..0ea60ccd5 100755 --- a/scripts/python_dependencies.py +++ b/scripts/python_dependencies.py @@ -4,17 +4,14 @@ """ import distutils.core +import sys +import re __author__ = "Anton Bolshakov" __license__ = "GPL-3" __email__ = "blshkv@pentoo.ch" -#def split_re(delimiters, string, maxsplit=0): -# import re -# regexPattern = '|'.join(map(re.escape, delimiters)) -# return re.split(regexPattern, string, maxsplit) - -def gentoo_mapping(search): +def portage_mapping(search): mapping = { "dev-python/prompt-toolkit": "dev-python/prompt_toolkit", "dev-python/bs4": "dev-python/beautifulsoup:4", @@ -24,27 +21,40 @@ def gentoo_mapping(search): "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", } for key in mapping: search = search.replace(key, mapping[key]) return search -def split_re(delimiters, string, maxsplit=0): - import re - return re.split(delimiters, string, maxsplit) - def main(): setup = distutils.core.run_setup("./setup.py") - #print(setup.install_requires) + print(setup.install_requires) print("RDEPEND=\"") for i in setup.install_requires: - requires = split_re(">=|==",i,1) - if len(requires) == 2: - print("\t>="+gentoo_mapping("dev-python/"+requires[0])+"-"+requires[1]+"[${PYTHON_USEDEP}]") + + #match: my-na.me<5.0.0,>=4.0.0 + #and match: my-na.me + pattern = '([-.\w]+)(>=|>|==|=<|<)?([\d.]+)?(,)?(>=|>|==|=<|<)?([\d.]+)?' + match = re.search(pattern, i) +# if match: +# print("Match:", match.group(1), match.group(2), match.group(3), match.group(4), match.group(5), match.group(6)) +# 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))) else: - print("\t"+gentoo_mapping("dev-python/"+requires[0])+"[${PYTHON_USEDEP}]") + print("Error: fail to detect dependency name") + sys.exit(1) + print("\"") if __name__ == '__main__':