You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

72 lines
2.6 KiB

# -*- coding: UTF-8 -*-
#!/usr/bin/env python3.7
import json
import portage
portage.root
from utils.parsePortage import PortageConfig
portge = portage.db[portage.root]["porttree"].dbapi
#from utils.utils import sort_install_pkg
#ПЛАН:
#
# API PORTAGE IN SEARCH
def search(r_p):
Cat = []
pkg = {}
Category = ""
Name = ""
version = ""
USE = ""
Description = ""
Home_page = ""
repository = ""
#PortEnv = PortageConfig.run()
try:
parametrs = ["HOMEPAGE", "IUSE","DESCRIPTION", "repository", "LICENSE"]
#print(r_p)
p_list = portge.xmatch('match-all', r_p)
m_list = portge.xmatch('match-visible', r_p)
#print(m_list)
#print(len(p_list))
if len(p_list) != 0:
for l in p_list:
params = portge.aux_get(l, parametrs)
if str(Cat) in Category and str(l).split('/')[1].split('-')[0] in Name:
version = version + " " + str(l.replace(Name + "-", ""))
if not l in m_list:
version = str(version) +"[M]"
else:
version = str(version) +"[U]"
#version + " " + str(l).split('/')[1].split('-')[:-1]
else:
Category= str(Cat)
#Name =str(l).split('/')[1].split('-')[0]
if len(r_p.split('/')) >=2:
print("> = 2")
Name = r_p
else:
Name = l.split("/")[0] +"/" + r_p
version = str(l.replace(Name + "-", ""))
if not l in m_list:
version = str(version) + "[M]"
else:
version = str(version) + "[U]"
USE = params[1]
Description = params[2]
Home_page = params[0]
repository = params[3]
else:
Name = "Package is not Found"
print(Category + "\n" + Name + "\n" + version +"\n" + USE + "\n" + Description + "\n" + Home_page +"\n")
p_list = str(Category + "\n" + Name + "\n" + version +"\n" + USE + "\n" + Description + "\n" + Home_page +"\n")
except Exception as e:
print(str(e))
p_list = " ERROR IN Package "
pkg = {"Category": Category, "Name": Name, "version": version.split(" "), "USE": USE.split(" "), "Description": Description, "Home_page": Home_page, 'repo': str(repository)}
print(pkg)
return pkg