Exemplo n.º 1
0
    def choose(self):
        """Choose repositories
        """
        keys = """
Choose repositories at the right side for enable or to the
left side for disable.

Keys: SPACE   select or deselect the highlighted repositories,
             move it between the left and right lists
          ^       move the focus to the left list
          $       move the focus to the right list
        TAB     move focus
      ENTER   press the focused button

      Disabled  <-------- REPOSITORIES ------->  Enabled"""
        self.read_enabled()
        self.read_disabled()
        text, title, backtitle, status = keys, " Repositories ", "", False
        self.selected = DialogUtil(self.disabled, text, title, backtitle,
                                   status).buildlist(self.enabled)
        if self.selected is not None:
            self.update_repos()
        else:
            self.selected = self.enabled
        self.clear_screen()
        self.reference()
Exemplo n.º 2
0
def choose_upg(packages):
    """Create checklist to choose packages for upgrade
    """
    selected_packages, data = [], []
    if packages:
        for pkg in packages:
            name = GetFromInstalled(pkg).name()
            ver = GetFromInstalled(pkg).version()
            binary = "{0}{1}".format(name, ver)
            installed = find_package(binary + _meta_.sp, _meta_.pkg_path)[0]
            data.append(installed)
        text = "Press 'spacebar' to unchoose packages from upgrade"
        title = " Upgrade "
        backtitle = "{0} {1}".format(_meta_.__all__, _meta_.__version__)
        status = True
        pkgs = DialogUtil(data, text, title, backtitle, status).checklist()
        pkgs = [] if pkgs is None else pkgs
        for pkg in pkgs:
            name = split_package(pkg)[0]
            if name in packages:
                selected_packages.append(name)
        if not selected_packages:
            raise SystemExit()
        print("")
    return selected_packages
Exemplo n.º 3
0
 def _view_removed(self):
     """View packages before removed
     """
     print("\nPackages with name matching [ {0}{1}{2} ]\n".format(
         self.meta.color["CYAN"], ", ".join(self.binary),
         self.meta.color["ENDC"]))
     removed, packages = self._get_removed()
     if packages and "--checklist" in self.extra:
         removed = []
         text = "Press 'spacebar' to unchoose packages from the remove"
         backtitle = "{0} {1}".format(self.meta.__all__,
                                      self.meta.__version__)
         status = True
         pkgs = DialogUtil(packages, text, " Remove ", backtitle,
                           status).checklist()
         if pkgs:
             for rmv in pkgs:
                 removed.append(split_package(rmv)[0])
             self.meta.default_answer = "y"
     else:
         for rmv, pkg in zip(removed, packages):
             print("[ {0}delete{1} ] --> {2}".format(
                 self.meta.color["RED"], self.meta.color["ENDC"], pkg))
             self._sizes(pkg)
         self._calc_sizes()
         self._remove_summary()
     return removed
Exemplo n.º 4
0
 def dialog_checklist(self):
     """Create checklist to choose packages for upgrade
     """
     data = []
     for upg in self.upgrade_all:
         data.append(upg[:-4])
     text = "Press 'spacebar' to unchoose packages from upgrade"
     title = " Upgrade "
     backtitle = "{0} {1}".format(self.meta.__all__, self.meta.__version__)
     status = True
     pkgs = DialogUtil(data, text, title, backtitle, status).checklist()
     index = 0
     for pkg, comp, uncomp in zip(self.upgrade_all, self.comp_sum,
                                  self.uncomp_sum):
         if pkg[:-4] not in pkgs:
             self.dwn_links.pop(index)
             self.upgrade_all.pop(index)
             self.comp_sum.pop(index)
             self.uncomp_sum.pop(index)
             self.count_upg -= 1
             del comp, uncomp
             index -= 1
         index += 1
     if not self.upgrade_all:
         raise SystemExit()
Exemplo n.º 5
0
 def _view_deps(self, path, package):
     """View dependencies before remove
     """
     self.size = 0
     packages = []
     dependencies = (Utils().read_file(path + package)).splitlines()
     for dep in dependencies:
         if GetFromInstalled(dep).name():
             ver = GetFromInstalled(dep).version()
             packages.append(dep + ver)
         else:
             dependencies.remove(dep)
     if packages:
         if "--checklist" in self.extra:
             deps, dependencies = [], []
             text = "Found dependencies for the package {0}".format(package)
             backtitle = "{0} {1}".format(self.meta.__all__,
                                          self.meta.__version__)
             status = True
             deps = DialogUtil(packages, text, " Remove ", backtitle,
                               status).checklist()
             for d in deps:
                 dependencies.append("-".join(d.split("-")[:-1]))
             self.meta.remove_deps_answer = "y"
         else:
             print("")   # new line at start
             self.msg.template(78)
             print("| Found dependencies for the package {0}:".format(
                 package))
             self.msg.template(78)
             for pkg in packages:
                 find = find_package(pkg + self.meta.sp, self.meta.pkg_path)
                 self._sizes(find[0])
                 print("| {0}{1}{2}".format(self.meta.color["RED"], pkg,
                                            self.meta.color["ENDC"]))
             self.msg.template(78)
             self._calc_sizes()
             print("| {0}Size of removed dependencies {1} {2}{3}".format(
                 self.meta.color["GREY"], round(self.size, 2), self.unit,
                 self.meta.color["ENDC"]))
             self.msg.template(78)
     return dependencies
Exemplo n.º 6
0
 def _check_if_used(self, removes):
     """Check package if dependencies for another package
     before removed"""
     if "--check-deps" in self.extra:
         package, dependency, pkg_dep = [], [], []
         for pkg in find_package("", self.dep_path):
             deps = Utils().read_file(self.dep_path + pkg)
             for rmv in removes:
                 if GetFromInstalled(rmv).name() and rmv in deps.split():
                     pkg_dep.append(
                         "{0} is dependency of the package --> {1}".format(
                             rmv, pkg))
                     package.append(pkg)
                     dependency.append(rmv)
         if package:
             if "--checklist" in self.extra:
                 text = ("Press 'spacebar' to choose packages for the remove"
                         " exception")
                 backtitle = "{0} {1}".format(self.meta.__all__,
                                              self.meta.__version__)
                 status = False
                 choose = DialogUtil(pkg_dep, text, " !!! WARNING !!! ",
                                     backtitle, status).checklist()
                 for pkg in choose:
                     self.skip.append(pkg.split()[0])
             else:
                 self.msg.template(78)
                 print("| {0}{1}{2}".format(
                     self.meta.color["RED"], " " * 30 + "!!! WARNING !!!",
                     self.meta.color["ENDC"]))
                 self.msg.template(78)
                 for p, d in zip(package, dependency):
                     print("| {0}{1}{2} is dependency of the package --> "
                           "{3}{4}{5}".format(self.meta.color["YELLOW"], d,
                                              self.meta.color["ENDC"],
                                              self.meta.color["GREEN"], p,
                                              self.meta.color["ENDC"]))
                 self.msg.template(78)
                 self._skip_remove()
Exemplo n.º 7
0
 def with_checklist(self):
     """Using dialog and checklist option
     """
     data = []
     if self.name == "ALL":
         data = self.data
     else:
         for name in self.data:
             if self.name in name:
                 data.append(name)
     if data:
         text = "Press 'spacebar' to choose SlackBuild for view"
         title = " SlackBuilds.org "
         backtitle = "{0} {1}".format(_meta_.__all__, _meta_.__version__)
         status = False
         pkg = DialogUtil(data, text, title, backtitle, status).checklist()
         if pkg and len(pkg) > 1:
             print("\nslpkg: Error: Choose only one package")
             raise SystemExit()
         if pkg is None:
             raise SystemExit()
         self.name = "".join(pkg)
         os.system("clear")