Updated to full class

This commit is contained in:
Dimitris Zlatanidis 2015-08-05 09:07:23 +03:00
parent 74eb32a5e7
commit 1f03e5c456

View file

@ -48,6 +48,12 @@ class SBoNetwork(object):
def __init__(self, name): def __init__(self, name):
self.name = name self.name = name
self.meta = _meta_ self.meta = _meta_
self.green = self.meta.color["GREEN"]
self.red = self.meta.color["RED"]
self.yellow = self.meta.color["YELLOW"]
self.cyan = self.meta.color["CYAN"]
self.grey = self.meta.color["GREY"]
self.endc = self.meta.color["ENDC"]
self.build_folder = self.meta.build_path self.build_folder = self.meta.build_path
Msg().reading() Msg().reading()
grep = SBoGrep(self.name) grep = SBoGrep(self.name)
@ -71,12 +77,7 @@ class SBoNetwork(object):
""" """
if self.sbo_url and self.name not in self.blacklist: if self.sbo_url and self.name not in self.blacklist:
prgnam = ("{0}-{1}".format(self.name, self.sbo_version)) prgnam = ("{0}-{1}".format(self.name, self.sbo_version))
self.view_sbo( self.view_sbo()
self.name, self.sbo_url, self.sbo_desc,
self.sbo_dwn.split("/")[-1],
", ".join([src.split("/")[-1] for src in self.source_dwn]),
self.sbo_req)
FAULT = self.error_uns()
while True: while True:
choice = self.read_choice() choice = self.read_choice()
if choice in ["D", "d"]: if choice in ["D", "d"]:
@ -96,13 +97,13 @@ class SBoNetwork(object):
fill = self.fill_pager(SlackBuild) fill = self.fill_pager(SlackBuild)
pydoc.pager(SlackBuild + fill) pydoc.pager(SlackBuild + fill)
elif choice in ["B", "b"]: elif choice in ["B", "b"]:
self.build(FAULT) self.build()
delete(self.build_folder) delete(self.build_folder)
break break
elif choice in ["I", "i"]: elif choice in ["I", "i"]:
if not find_package(prgnam + self.meta.sp, if not find_package(prgnam + self.meta.sp,
self.meta.pkg_path): self.meta.pkg_path):
self.build(FAULT) self.build()
self.install(prgnam) self.install(prgnam)
delete(self.build_folder) delete(self.build_folder)
break break
@ -116,53 +117,51 @@ class SBoNetwork(object):
else: else:
Msg().pkg_not_found("\n", self.name, "Can't view", "\n") Msg().pkg_not_found("\n", self.name, "Can't view", "\n")
@staticmethod def view_sbo(self):
def view_sbo(*args):
""" """
View slackbuild.org View slackbuild.org
""" """
br1, br2, fix_sp = "", "", " " br1, br2, fix_sp = "", "", " "
if _meta_.use_colors in ["off", "OFF"]: if self.meta.use_colors in ["off", "OFF"]:
br1 = "(" br1 = "("
br2 = ")" br2 = ")"
fix_sp = "" fix_sp = ""
color = _meta_.color
print("") # new line at start print("") # new line at start
Msg().template(78) Msg().template(78)
print("| {0}Package {1}{2}{3} --> {4}".format(color["GREEN"], print("| {0}Package {1}{2}{3} --> {4}".format(self.green,
color["CYAN"], args[0], self.cyan, self.name,
color["GREEN"], self.green,
color["ENDC"] + args[1])) self.endc + self.sbo_url))
Msg().template(78) Msg().template(78)
print("| {0}Description : {1}{2}".format(color["GREEN"], print("| {0}Description : {1}{2}".format(self.green,
color["ENDC"], args[2])) self.endc, self.sbo_desc))
print("| {0}SlackBuild : {1}{2}".format(color["GREEN"], color["ENDC"], print("| {0}SlackBuild : {1}{2}".format(self.green, self.endc,
args[3])) self.sbo_dwn.split("/")[-1]))
print("| {0}Sources : {1}{2}".format(color["GREEN"], color["ENDC"], print("| {0}Sources : {1}{2}".format(
args[4])) self.green, self.endc,
print("| {0}Requirements : {1}{2}".format(color["YELLOW"], (", ".join([src.split("/")[-1] for src in self.source_dwn]))))
color["ENDC"], print("| {0}Requirements : {1}{2}".format(self.yellow,
", ".join(args[5]))) self.endc,
", ".join(self.sbo_req)))
Msg().template(78) Msg().template(78)
print("| {0}R{1}{2}EADME View the README file".format( print("| {0}R{1}{2}EADME View the README file".format(
color["RED"], color["ENDC"], br2)) self.red, self.endc, br2))
print("| {0}S{1}{2}lackBuild View the SlackBuild file".format( print("| {0}S{1}{2}lackBuild View the SlackBuild file".format(
color["RED"], color["ENDC"], br2)) self.red, self.endc, br2))
print("| In{0}{1}f{2}{3}o{4} View the Info file".format( print("| In{0}{1}f{2}{3}o{4} View the Info file".format(
br1, color["RED"], color["ENDC"], br2, fix_sp)) br1, self.red, self.endc, br2, fix_sp))
print("| {0}D{1}{2}ownload Download this package".format( print("| {0}D{1}{2}ownload Download this package".format(
color["RED"], color["ENDC"], br2)) self.red, self.endc, br2))
print("| {0}B{1}{2}uild Download and build".format( print("| {0}B{1}{2}uild Download and build".format(
color["RED"], color["ENDC"], br2)) self.red, self.endc, br2))
print("| {0}I{1}{2}nstall Download/Build/Install".format( print("| {0}I{1}{2}nstall Download/Build/Install".format(
color["RED"], color["ENDC"], br2)) self.red, self.endc, br2))
print("| {0}Q{1}{2}uit Quit".format(color["RED"], print("| {0}Q{1}{2}uit Quit".format(self.red,
color["ENDC"], br2)) self.endc, br2))
Msg().template(78) Msg().template(78)
@staticmethod def fill_pager(self, page):
def fill_pager(page):
""" """
Fix pager spaces Fix pager spaces
""" """
@ -183,7 +182,7 @@ class SBoNetwork(object):
try: try:
try: try:
choice = raw_input("{0} Choose an option > {1}".format( choice = raw_input("{0} Choose an option > {1}".format(
_meta_.color["GREY"], _meta_.color["ENDC"])) self.grey, self.endc))
except (KeyboardInterrupt, EOFError): except (KeyboardInterrupt, EOFError):
print("") print("")
raise SystemExit() raise SystemExit()
@ -201,24 +200,24 @@ class SBoNetwork(object):
if "".join(self.source_dwn) in UNST: if "".join(self.source_dwn) in UNST:
return "".join(self.source_dwn) return "".join(self.source_dwn)
def build(self, FAULT): def build(self):
""" """
Only build and create Slackware package Only build and create Slackware package
""" """
if FAULT: if self.error_uns():
print("\n{0}The package {1} {2}\n".format(_meta_.color["RED"], print("\n{0}The package {1} {2}\n".format(self.red,
FAULT, self.error_uns(),
_meta_.color["ENDC"])) self.endc))
raise SystemExit() raise SystemExit()
sources = [] sources = []
if not os.path.exists(_meta_.build_path): if not os.path.exists(self.meta.build_path):
os.makedirs(_meta_.build_path) os.makedirs(self.meta.build_path)
os.chdir(_meta_.build_path) os.chdir(self.meta.build_path)
Download(_meta_.build_path, self.dwn_srcs, repo="sbo").start() Download(self.meta.build_path, self.dwn_srcs, repo="sbo").start()
script = self.sbo_dwn.split("/")[-1] script = self.sbo_dwn.split("/")[-1]
for src in self.source_dwn: for src in self.source_dwn:
sources.append(src.split("/")[-1]) sources.append(src.split("/")[-1])
BuildPackage(script, sources, _meta_.build_path).build() BuildPackage(script, sources, self.meta.build_path).build()
def install(self, prgnam): def install(self, prgnam):
""" """
@ -226,15 +225,15 @@ class SBoNetwork(object):
directory. directory.
""" """
binary_list = [] binary_list = []
for search in find_package(prgnam, _meta_.output): for search in find_package(prgnam, self.meta.output):
if "_SBo" in search: if "_SBo" in search:
binary_list.append(search) binary_list.append(search)
try: try:
binary = (_meta_.output + max(binary_list)).split() binary = (self.meta.output + max(binary_list)).split()
except ValueError: except ValueError:
Msg().build_FAILED(self.sbo_url, prgnam) Msg().build_FAILED(self.sbo_url, prgnam)
raise SystemExit() raise SystemExit()
print("[ {0}Installing{1} ] --> {2}".format(_meta_.color["GREEN"], print("[ {0}Installing{1} ] --> {2}".format(self.green,
_meta_.color["ENDC"], self.endc,
self.name)) self.name))
PackageManager(binary).upgrade(flag="--install-new") PackageManager(binary).upgrade(flag="--install-new")