def __call__(self, what, amount, total, infopath, data): if self.rpmout: self._process_rpmout() if what == rpm.RPMCALLBACK_INST_OPEN_FILE: info, path = infopath pkgstr = str(info.getPackage()) iface.debug(_("Processing %s in %s") % (pkgstr, path)) self.topic = _("Output from %s:") % pkgstr self.fd = os.open(path, os.O_RDONLY) setCloseOnExec(self.fd) return self.fd elif what == rpm.RPMCALLBACK_INST_CLOSE_FILE: if self.fd is not None: os.close(self.fd) self.fd = None elif what == rpm.RPMCALLBACK_INST_START: info, path = infopath pkg = info.getPackage() self.data["item-number"] += 1 self.prog.add(1) self.prog.setSubTopic(infopath, _("Installing %s") % pkg.name) self.prog.setSub(infopath, 0, 1, subdata=self.data) self.prog.show() elif (what == rpm.RPMCALLBACK_TRANS_PROGRESS or what == rpm.RPMCALLBACK_INST_PROGRESS): self.prog.setSub(infopath or "trans", amount, total, subdata=self.data) self.prog.show() elif what == rpm.RPMCALLBACK_TRANS_START: self.prog.setSubTopic("trans", _("Preparing...")) self.prog.setSub("trans", 0, 1) self.prog.show() elif what == rpm.RPMCALLBACK_TRANS_STOP: self.prog.setSubDone("trans") self.prog.show() elif what == rpm.RPMCALLBACK_UNINST_START: self.topic = _("Output from %s:") % infopath subkey = "R*" + infopath self.data["item-number"] += 1 self.prog.add(1) if infopath in self.upgradednames: topic = _("Cleaning %s") % infopath else: topic = _("Removing %s") % infopath self.prog.setSubTopic(subkey, topic) self.prog.setSub(subkey, 0, 1, subdata=self.data) self.prog.show() elif what == rpm.RPMCALLBACK_UNINST_STOP: self.topic = None subkey = "R*" + infopath if not self.prog.getSub(subkey): self.data["item-number"] += 1 self.prog.add(1) if infopath in self.upgradednames: topic = _("Cleaning %s") % infopath else: topic = _("Removing %s") % infopath self.prog.setSubTopic(subkey, topic) self.prog.setSub(subkey, 1, 1, subdata=self.data) else: self.prog.setSubDone(subkey) self.prog.show()
def __call__(self, what, amount, total, infopath, data): if self.rpmout: self._process_rpmout() if what == rpm.RPMCALLBACK_INST_OPEN_FILE: info, path = infopath pkgstr = str(info.getPackage()) iface.debug(_("Processing %s in %s") % (pkgstr, path)) self.topic = _("Output from %s:") % pkgstr self.fd = os.open(path, os.O_RDONLY) setCloseOnExec(self.fd) return self.fd elif what == rpm.RPMCALLBACK_INST_CLOSE_FILE: if self.fd is not None: os.close(self.fd) self.fd = None elif what == rpm.RPMCALLBACK_INST_START: info, path = infopath pkg = info.getPackage() self.data["item-number"] += 1 self.prog.add(1) self.prog.setSubTopic(infopath, _("Installing %s") % pkg.name) self.prog.setSub(infopath, 0, 1, subdata=self.data) self.prog.show() elif (what == rpm.RPMCALLBACK_TRANS_PROGRESS or what == rpm.RPMCALLBACK_INST_PROGRESS): self.prog.setSub(infopath or "trans", amount, total, subdata=self.data) self.prog.show() elif what == rpm.RPMCALLBACK_TRANS_START: self.prog.setSubTopic("trans", _("Preparing...")) self.prog.setSub("trans", 0, 1) self.prog.show() elif what == rpm.RPMCALLBACK_TRANS_STOP: self.prog.setSubDone("trans") self.prog.show() elif what == rpm.RPMCALLBACK_UNINST_START: self.topic = _("Output from %s:") % infopath subkey = "R*"+infopath self.data["item-number"] += 1 self.prog.add(1) if infopath in self.upgradednames: topic = _("Cleaning %s") % infopath else: topic = _("Removing %s") % infopath self.prog.setSubTopic(subkey, topic) self.prog.setSub(subkey, 0, 1, subdata=self.data) self.prog.show() elif what == rpm.RPMCALLBACK_UNINST_STOP: self.topic = None subkey = "R*"+infopath if not self.prog.getSub(subkey): self.data["item-number"] += 1 self.prog.add(1) if infopath in self.upgradednames: topic = _("Cleaning %s") % infopath else: topic = _("Removing %s") % infopath self.prog.setSubTopic(subkey, topic) self.prog.setSub(subkey, 1, 1, subdata=self.data) else: self.prog.setSubDone(subkey) self.prog.show()