예제 #1
0
 def __init__(self, name, flag):
     self.name = name
     self.flag = flag
     self.meta = _meta_
     self.msg = Msg()
     self.arch = SBoArch().get()
     self.comp_tar = ".tar.gz"
     self.choice = ""
     self.FAULT = ""
     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._SOURCES = self.meta._SBo_SOURCES
     self.msg.reading()
     self.data = SBoGrep(name="").names()
     self.case_insensitive()
     if "--checklist" in self.flag:
         self.with_checklist()
     grep = SBoGrep(self.name)
     self.sbo_files = grep.files()
     self.blacklist = BlackList().packages(pkgs=self.data, repo="sbo")
     self.sbo_url = sbo_search_pkg(self.name)
     if self.sbo_url:
         self.sbo_desc = grep.description()[len(self.name) + 2:-1]
         self.source_dwn = grep.source().split()
         self.sbo_req = grep.requires()
         self.sbo_dwn = SBoLink(self.sbo_url).tar_gz()
         self.sbo_version = grep.version()
         self.dwn_srcs = self.sbo_dwn.split() + self.source_dwn
     if "--checklist" not in self.flag or not self.sbo_url and self.name:
         self.msg.done()
예제 #2
0
파일: slackbuild.py 프로젝트: dslackw/slpkg
 def build_install(self):
     """Build and install packages if not already installed
     """
     slackbuilds = self.dependencies + self.master_packages
     installs, upgraded, = [], []
     if not os.path.exists(self.build_folder):
         os.makedirs(self.build_folder)
     if not os.path.exists(self._SOURCES):
         os.makedirs(self._SOURCES)
     os.chdir(self.build_folder)
     for prgnam in slackbuilds:
         if (self.meta.not_downgrade == "on" and
                 self.not_downgrade(prgnam) is True):
             continue
         pkg = "-".join(prgnam.split("-")[:-1])
         installed = "".join(find_package(prgnam, self.meta.pkg_path))
         src_link = SBoGrep(pkg).source().split()
         if (installed and "--download-only" not in self.flag and
                 "--rebuild" not in self.flag):
             self.msg.template(78)
             self.msg.pkg_found(prgnam)
             self.msg.template(78)
         elif self.unst[0] in src_link or self.unst[1] in src_link:
             self.msg.template(78)
             print("| Package {0} {1}{2}{3}".format(
                 prgnam, self.meta.color["RED"], "".join(src_link),
                 self.meta.color["ENDC"]))
             self.msg.template(78)
         else:
             sbo_url = sbo_search_pkg(pkg)
             sbo_link = SBoLink(sbo_url).tar_gz()
             script = sbo_link.split("/")[-1]
             if self.meta.sbosrcarch in ["on", "ON"]:
                 src_link = self.sbosrcarsh(prgnam, sbo_link, src_link)
             Download(self.build_folder, sbo_link.split(),
                      repo="sbo").start()
             Download(self._SOURCES, src_link, repo="sbo").start()
             if "--download-only" in self.flag:
                 continue
             sources = self.filenames(src_link)
             BuildPackage(script, sources, self.build_folder,
                          auto=False).build()
             binary = slack_package(prgnam)
             if os.path.isfile("".join(binary)):
                 if GetFromInstalled(pkg).name() == pkg:
                     print("[ {0}Upgrading{1} ] --> {2}".format(
                         self.meta.color["YELLOW"],
                         self.meta.color["ENDC"], prgnam))
                     upgraded.append(prgnam)
                 else:
                     print("[ {0}Installing{1} ] --> {2}".format(
                         self.meta.color["GREEN"],
                         self.meta.color["ENDC"], prgnam))
                     installs.append(prgnam)
                 if ("--rebuild" in self.flag and
                         GetFromInstalled(pkg).name() == pkg):
                     PackageManager(binary).upgrade(flag="--reinstall")
                 else:
                     PackageManager(binary).upgrade(flag="--install-new")
     return installs, upgraded
예제 #3
0
 def build_install(self):
     """Build and install packages if not already installed
     """
     slackbuilds = self.dependencies + self.master_packages
     installs, upgraded, = [], []
     if not os.path.exists(self.build_folder):
         os.makedirs(self.build_folder)
     if not os.path.exists(self._SOURCES):
         os.makedirs(self._SOURCES)
     os.chdir(self.build_folder)
     for prgnam in slackbuilds:
         if (self.meta.not_downgrade == "on"
                 and self.not_downgrade(prgnam) is True):
             continue
         pkg = "-".join(prgnam.split("-")[:-1])
         installed = "".join(find_package(prgnam, self.meta.pkg_path))
         src_link = SBoGrep(pkg).source().split()
         if (installed and "--download-only" not in self.flag
                 and "--rebuild" not in self.flag):
             self.msg.template(78)
             self.msg.pkg_found(prgnam)
             self.msg.template(78)
         elif self.unst[0] in src_link or self.unst[1] in src_link:
             self.msg.template(78)
             print("| Package {0} {1}{2}{3}".format(
                 prgnam, self.meta.color["RED"], "".join(src_link),
                 self.meta.color["ENDC"]))
             self.msg.template(78)
         else:
             sbo_url = sbo_search_pkg(pkg)
             sbo_link = SBoLink(sbo_url).tar_gz()
             script = sbo_link.split("/")[-1]
             if self.meta.sbosrcarch in ["on", "ON"]:
                 src_link = self.sbosrcarsh(prgnam, sbo_link, src_link)
             Download(self.build_folder, sbo_link.split(),
                      repo="sbo").start()
             Download(self._SOURCES, src_link, repo="sbo").start()
             if "--download-only" in self.flag:
                 continue
             sources = self.filenames(src_link)
             BuildPackage(script, sources, self.build_folder,
                          auto=False).build()
             binary = slack_package(prgnam)
             if os.path.isfile("".join(binary)):
                 if GetFromInstalled(pkg).name() == pkg:
                     print("[ {0}Upgrading{1} ] --> {2}".format(
                         self.meta.color["YELLOW"], self.meta.color["ENDC"],
                         prgnam))
                     upgraded.append(prgnam)
                 else:
                     print("[ {0}Installing{1} ] --> {2}".format(
                         self.meta.color["GREEN"], self.meta.color["ENDC"],
                         prgnam))
                     installs.append(prgnam)
                 if ("--rebuild" in self.flag
                         and GetFromInstalled(pkg).name() == pkg):
                     PackageManager(binary).upgrade(flag="--reinstall")
                 else:
                     PackageManager(binary).upgrade(flag="--install-new")
     return installs, upgraded
예제 #4
0
파일: queue.py 프로젝트: fabioalvaro/slpkg
 def build(self):
     """Build packages from queue
     """
     packages = self.packages()
     if packages:
         for pkg in packages:
             if not os.path.exists(self.meta.build_path):
                 os.mkdir(self.meta.build_path)
             if not os.path.exists(self._SOURCES):
                 os.mkdir(self._SOURCES)
             sbo_url = sbo_search_pkg(pkg)
             sbo_dwn = SBoLink(sbo_url).tar_gz()
             source_dwn = SBoGrep(pkg).source().split()
             sources = []
             os.chdir(self.meta.build_path)
             script = sbo_dwn.split("/")[-1]
             Download(self.meta.build_path, sbo_dwn.split(),
                      repo="sbo").start()
             for src in source_dwn:
                 Download(self._SOURCES, src.split(), repo="sbo").start()
                 sources.append(src.split("/")[-1])
             BuildPackage(script, sources, self.meta.build_path,
                          auto=False).build()
     else:
         print("\nPackages not found in the queue for building\n")
예제 #5
0
 def __init__(self, name, flag):
     self.name = name
     self.flag = flag
     self.meta = _meta_
     self.msg = Msg()
     self.arch = SBoArch().get()
     self.comp_tar = ".tar.gz"
     self.choice = ""
     self.FAULT = ""
     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._SOURCES = self.meta.SBo_SOURCES
     self.msg.reading()
     self.data = SBoGrep(name="").names()
     self.case_insensitive()
     if "--checklist" in self.flag:
         self.with_checklist()
     grep = SBoGrep(self.name)
     self.sbo_files = grep.files()
     self.blacklist = BlackList().packages(pkgs=self.data, repo="sbo")
     self.sbo_url = sbo_search_pkg(self.name)
     if self.sbo_url:
         self.sbo_desc = grep.description()[len(self.name) + 2:-1]
         self.source_dwn = grep.source().split()
         self.sbo_req = grep.requires()
         self.sbo_dwn = SBoLink(self.sbo_url).tar_gz()
         self.sbo_version = grep.version()
         self.dwn_srcs = self.sbo_dwn.split() + self.source_dwn
     if "--checklist" not in self.flag or not self.sbo_url and self.name:
         self.msg.done()
예제 #6
0
 def build(self):
     """Build packages from queue
     """
     packages = self.packages()
     if packages:
         for pkg in packages:
             if not os.path.exists(self.meta.build_path):
                 os.mkdir(self.meta.build_path)
             if not os.path.exists(self._SOURCES):
                 os.mkdir(self._SOURCES)
             sbo_url = sbo_search_pkg(pkg)
             sbo_dwn = SBoLink(sbo_url).tar_gz()
             source_dwn = SBoGrep(pkg).source().split()
             sources = []
             os.chdir(self.meta.build_path)
             script = sbo_dwn.split("/")[-1]
             Download(self.meta.build_path, sbo_dwn.split(),
                      repo="sbo").start()
             for src in source_dwn:
                 Download(self._SOURCES, src.split(), repo="sbo").start()
                 sources.append(src.split("/")[-1])
             BuildPackage(script, sources, self.meta.build_path,
                          auto=False).build()
     else:
         print("\nPackages not found in the queue for building\n")
         raise SystemExit(1)
예제 #7
0
파일: tracking.py 프로젝트: websafe/slpkg
 def repositories(self):
     """Get dependencies by repositories
     """
     if self.repo == "sbo":
         self.dependencies_list = Requires(self.flag).sbo(self.name)
         self.find_pkg = sbo_search_pkg(self.name)
     else:
         PACKAGES_TXT = Utils().read_file(self.meta.lib_path + "{0}_repo/"
                                          "PACKAGES.TXT".format(self.repo))
         self.names = Utils().package_name(PACKAGES_TXT)
         self.black = BlackList().packages(self.names, self.repo)
         self.dependencies_list = Dependencies(
             self.names, self.repo, self.black).binary(self.name, self.flag)
         self.find_pkg = search_pkg(self.name, self.repo)
예제 #8
0
 def repositories(self):
     """Get dependencies by repositories
     """
     if self.repo == "sbo":
         self.sbo_case_insensitive()
         self.find_pkg = sbo_search_pkg(self.name)
         if self.find_pkg:
             self.dependencies_list = Requires(self.flag).sbo(self.name)
     else:
         PACKAGES_TXT = Utils().read_file(
             self.meta.lib_path + "{0}_repo/PACKAGES.TXT".format(self.repo))
         self.names = Utils().package_name(PACKAGES_TXT)
         self.bin_case_insensitive()
         self.find_pkg = search_pkg(self.name, self.repo)
         if self.find_pkg:
             self.black = BlackList().packages(self.names, self.repo)
             self.dependencies_list = Dependencies(
                 self.repo, self.black).binary(self.name, self.flag)
예제 #9
0
파일: slackbuild.py 프로젝트: websafe/slpkg
 def build_install(self):
     """Build and install packages if not already installed
     """
     slackbuilds = self.dependencies + self.master_packages
     installs, upgraded, = [], []
     if not os.path.exists(self.build_folder):
         os.makedirs(self.build_folder)
     os.chdir(self.build_folder)
     for prgnam in slackbuilds:
         pkg = "-".join(prgnam.split("-")[:-1])
         installed = "".join(find_package(prgnam + self.meta.sp,
                                          self.meta.pkg_path))
         src_link = SBoGrep(pkg).source().split()
         if installed:
             self.msg.template(78)
             self.msg.pkg_found(prgnam)
             self.msg.template(78)
         elif self.unst[0] in src_link or self.unst[1] in src_link:
             self.msg.template(78)
             print("| Package {0} {1}{2}{3}".format(
                 prgnam, self.meta.color["RED"], "".join(src_link),
                 self.meta.color["ENDC"]))
             self.msg.template(78)
         else:
             sbo_url = sbo_search_pkg(pkg)
             sbo_link = SBoLink(sbo_url).tar_gz()
             script = sbo_link.split("/")[-1]
             dwn_srcs = sbo_link.split() + src_link
             Download(self.build_folder, dwn_srcs, repo="sbo").start()
             sources = self.filenames(src_link)
             BuildPackage(script, sources, self.build_folder).build()
             binary = slack_package(prgnam)
             if GetFromInstalled(pkg).name() == pkg:
                 print("[ {0}Upgrading{1} ] --> {2}".format(
                     self.meta.color["YELLOW"],
                     self.meta.color["ENDC"], prgnam))
                 upgraded.append(prgnam)
             else:
                 print("[ {0}Installing{1} ] --> {2}".format(
                     self.meta.color["GREEN"],
                     self.meta.color["ENDC"], prgnam))
                 installs.append(prgnam)
             PackageManager(binary).upgrade(flag="--install-new")
     return installs, upgraded
예제 #10
0
파일: queue.py 프로젝트: websafe/slpkg
 def add(self, pkgs):
     """Add packages in queue if not exist
     """
     queue_list = self.packages()
     pkgs = list(OrderedDict.fromkeys(pkgs))
     print("\nAdd packages in queue:\n")
     with open(self.queue_list, "a") as queue:
         for pkg in pkgs:
             find = sbo_search_pkg(pkg)
             if pkg not in queue_list and find is not None:
                 print("{0}{1}{2}".format(self.meta.color["GREEN"], pkg,
                                          self.meta.color["ENDC"]))
                 queue.write(pkg + "\n")
                 self.quit = True
             else:
                 print("{0}{1}{2}".format(self.meta.color["RED"], pkg,
                                          self.meta.color["ENDC"]))
                 self.quit = True
         queue.close()
     if self.quit:
         print("")   # new line at exit
예제 #11
0
 def add(self, pkgs):
     """Add packages in queue if not exist
     """
     queue_list = self.packages()
     pkgs = list(OrderedDict.fromkeys(pkgs))
     print("\nAdd packages in the queue:\n")
     with open(self.queue_list, "a") as queue:
         for pkg in pkgs:
             find = sbo_search_pkg(pkg)
             if pkg not in queue_list and find is not None:
                 print("{0}{1}{2}".format(self.meta.color["GREEN"], pkg,
                                          self.meta.color["ENDC"]))
                 queue.write(pkg + "\n")
                 self.quit = True
             else:
                 print("{0}{1}{2}".format(self.meta.color["RED"], pkg,
                                          self.meta.color["ENDC"]))
                 self.quit = True
         queue.close()
     if self.quit:
         print("")   # new line at exit