python_dependencies.py

This commit is contained in:
Anton Bolshakov 2021-05-26 01:30:37 +08:00
parent 2dce20fd56
commit e28638c18a
No known key found for this signature in database
GPG key ID: 32BDCED870788F04

View file

@ -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__':