def db_read(self, name): if not self.dbdir or not os.path.isdir(self.dbdir): return None dbentry = None if self.read_dircache is None: self.read_dircache = os.listdir(self.dbdir) for entry in self.read_dircache: if entry == "ALPM_DB_VERSION": continue [pkgname, pkgver, pkgrel] = entry.rsplit("-", 2) if pkgname == name: dbentry = entry break if dbentry is None: return None if pkgname in self.read_pkgcache: return self.read_pkgcache[pkgname] pkg = pmpkg.pmpkg(pkgname, pkgver + "-" + pkgrel) self.read_pkgcache[pkgname] = pkg path = os.path.join(self.dbdir, dbentry) # desc filename = os.path.join(path, "desc") if not os.path.isfile(filename): tap.bail("invalid db entry found (desc missing) for pkg " + pkgname) return None fd = open(filename, "r") while 1: line = fd.readline() if not line: break line = line.strip("\n") if line == "%DESC%": pkg.desc = fd.readline().strip("\n") elif line == "%GROUPS%": pkg.groups = _getsection(fd) elif line == "%URL%": pkg.url = fd.readline().strip("\n") elif line == "%LICENSE%": pkg.license = _getsection(fd) elif line == "%ARCH%": pkg.arch = fd.readline().strip("\n") elif line == "%BUILDDATE%": pkg.builddate = fd.readline().strip("\n") elif line == "%INSTALLDATE%": pkg.installdate = fd.readline().strip("\n") elif line == "%PACKAGER%": pkg.packager = fd.readline().strip("\n") elif line == "%REASON%": try: pkg.reason = int(fd.readline().strip("\n")) except ValueError: pkg.reason = -1 raise elif line == "%SIZE%" or line == "%CSIZE%": try: pkg.size = int(fd.readline().strip("\n")) except ValueError: pkg.size = -1 raise elif line == "%MD5SUM%": pkg.md5sum = fd.readline().strip("\n") elif line == "%PGPSIG%": pkg.pgpsig = fd.readline().strip("\n") elif line == "%REPLACES%": pkg.replaces = _getsection(fd) elif line == "%DEPENDS%": pkg.depends = _getsection(fd) elif line == "%OPTDEPENDS%": pkg.optdepends = _getsection(fd) elif line == "%CONFLICTS%": pkg.conflicts = _getsection(fd) elif line == "%PROVIDES%": pkg.provides = _getsection(fd) fd.close() # files filename = os.path.join(path, "files") if not os.path.isfile(filename): tap.bail("invalid db entry found (files missing) for pkg " + pkgname) return None fd = open(filename, "r") while 1: line = fd.readline() if not line: break line = line.strip("\n") if line == "%FILES%": while line: line = fd.readline().strip("\n") if line: pkg.files.append(line) if line == "%BACKUP%": pkg.backup = _getsection(fd) fd.close() # install filename = os.path.join(path, "install") return pkg
def db_read(self, name): if not self.dbdir or not os.path.isdir(self.dbdir): return None dbentry = "" for roots, dirs, files in os.walk(self.dbdir): for i in dirs: [pkgname, pkgver, pkgrel] = i.rsplit("-", 2) if pkgname == name: dbentry = i break if not dbentry: return None path = os.path.join(self.dbdir, dbentry) [pkgname, pkgver, pkgrel] = dbentry.rsplit("-", 2) pkg = pmpkg.pmpkg(pkgname, pkgver + "-" + pkgrel) # desc filename = os.path.join(path, "desc") if not os.path.isfile(filename): print "invalid db entry found (desc missing) for pkg", pkgname return None fd = open(filename, "r") while 1: line = fd.readline() if not line: break line = line.strip("\n") if line == "%DESC%": pkg.desc = fd.readline().strip("\n") elif line == "%GROUPS%": pkg.groups = _getsection(fd) elif line == "%URL%": pkg.url = fd.readline().strip("\n") elif line == "%LICENSE%": pkg.license = _getsection(fd) elif line == "%ARCH%": pkg.arch = fd.readline().strip("\n") elif line == "%BUILDDATE%": pkg.builddate = fd.readline().strip("\n") elif line == "%INSTALLDATE%": pkg.installdate = fd.readline().strip("\n") elif line == "%PACKAGER%": pkg.packager = fd.readline().strip("\n") elif line == "%REASON%": try: pkg.reason = int(fd.readline().strip("\n")) except ValueError: pkg.reason = -1 raise elif line == "%SIZE%" or line == "%CSIZE%": try: pkg.size = int(fd.readline().strip("\n")) except ValueError: pkg.size = -1 raise elif line == "%MD5SUM%": pkg.md5sum = fd.readline().strip("\n") elif line == "%PGPSIG%": pkg.pgpsig = fd.readline().strip("\n") elif line == "%REPLACES%": pkg.replaces = _getsection(fd) elif line == "%DEPENDS%": pkg.depends = _getsection(fd) elif line == "%OPTDEPENDS%": pkg.optdepends = _getsection(fd) elif line == "%CONFLICTS%": pkg.conflicts = _getsection(fd) elif line == "%PROVIDES%": pkg.provides = _getsection(fd) fd.close() # files filename = os.path.join(path, "files") if not os.path.isfile(filename): print "invalid db entry found (files missing) for pkg", pkgname return None fd = open(filename, "r") while 1: line = fd.readline() if not line: break line = line.strip("\n") if line == "%FILES%": while line: line = fd.readline().strip("\n") if line and line[-1] != "/": pkg.files.append(line) if line == "%BACKUP%": pkg.backup = _getsection(fd) fd.close() # install filename = os.path.join(path, "install") return pkg
def db_read(self, name): """ """ path = self.dbdir if not os.path.isdir(path): return None dbentry = "" for roots, dirs, files in os.walk(path): for i in dirs: [pkgname, pkgver, pkgrel] = i.rsplit("-", 2) if pkgname == name: dbentry = i break if not dbentry: return None path = os.path.join(path, dbentry) [pkgname, pkgver, pkgrel] = dbentry.rsplit("-", 2) pkg = pmpkg.pmpkg(pkgname, pkgver + "-" + pkgrel) # desc filename = os.path.join(path, "desc") fd = file(filename, "r") while 1: line = fd.readline() if not line: break line = line.strip("\n") if line == "%DESC%": pkg.desc = fd.readline().strip("\n") elif line == "%GROUPS%": pkg.groups = _getsection(fd) elif line == "%URL%": pkg.url = fd.readline().strip("\n") elif line == "%LICENSE%": pkg.license = _getsection(fd) elif line == "%ARCH%": pkg.arch = fd.readline().strip("\n") elif line == "%BUILDDATE%": pkg.builddate = fd.readline().strip("\n") elif line == "%INSTALLDATE%": pkg.installdate = fd.readline().strip("\n") elif line == "%PACKAGER%": pkg.packager = fd.readline().strip("\n") elif line == "%REASON%": pkg.reason = int(fd.readline().strip("\n")) elif line == "%SIZE%" or line == "%CSIZE%": pkg.size = int(fd.readline().strip("\n")) elif line == "%SHA1SUM%": pkg.sha1sum = fd.readline().strip("\n") elif line == "%REPLACES%": pkg.replaces = _getsection(fd) elif line == "%FORCE%": fd.readline() pkg.force = 1 elif line == "%STICK%": fd.readline() pkg.stick = 1 fd.close() pkg.checksum["desc"] = getsha1sum(filename) pkg.mtime["desc"] = getmtime(filename) # files filename = os.path.join(path, "files") fd = file(filename, "r") while 1: line = fd.readline() if not line: break line = line.strip("\n") if line == "%FILES%": while line: line = fd.readline().strip("\n") if line and line[-1] != "/": pkg.files.append(line) if line == "%BACKUP%": pkg.backup = _getsection(fd) fd.close() pkg.checksum["files"] = getsha1sum(filename) pkg.mtime["files"] = getmtime(filename) # depends filename = os.path.join(path, "depends") fd = file(filename, "r") while 1: line = fd.readline() if not line: break line = line.strip("\n") if line == "%DEPENDS%": pkg.depends = _getsection(fd) elif line == "%REQUIREDBY%": pkg.requiredby = _getsection(fd) elif line == "%CONFLICTS%": pkg.conflicts = _getsection(fd) elif line == "%PROVIDES%": pkg.provides = _getsection(fd) elif line == "%REPLACES%": pkg.replaces = _getsection(fd) elif line == "%FORCE%": fd.readline() pkg.force = 1 elif line == "%STICK%": fd.readline() pkg.stick = 1 fd.close() pkg.checksum["depends"] = getsha1sum(filename) pkg.mtime["depends"] = getmtime(filename) # install filename = os.path.join(path, "install") if os.path.isfile(filename): pkg.checksum["install"] = getsha1sum(filename) pkg.mtime["install"] = getmtime(filename) return pkg
def db_read(self, name): """ """ path = os.path.join(self.dbdir, self.treename) if not os.path.isdir(path): return None dbentry = "" for roots, dirs, files in os.walk(path): for i in dirs: [pkgname, pkgver, pkgrel] = i.rsplit("-", 2) if pkgname == name: dbentry = i break if not dbentry: return None path = os.path.join(path, dbentry) [pkgname, pkgver, pkgrel] = dbentry.rsplit("-", 2) pkg = pmpkg.pmpkg(pkgname, pkgver + "-" + pkgrel) # desc filename = os.path.join(path, "desc") if not os.path.isfile(filename): print "invalid db entry found (desc missing) for pkg", pkgname return None fd = open(filename, "r") while 1: line = fd.readline() if not line: break line = line.strip("\n") if line == "%DESC%": pkg.desc = fd.readline().strip("\n") elif line == "%GROUPS%": pkg.groups = _getsection(fd) elif line == "%URL%": pkg.url = fd.readline().strip("\n") elif line == "%LICENSE%": pkg.license = _getsection(fd) elif line == "%ARCH%": pkg.arch = fd.readline().strip("\n") elif line == "%BUILDDATE%": pkg.builddate = fd.readline().strip("\n") elif line == "%INSTALLDATE%": pkg.installdate = fd.readline().strip("\n") elif line == "%PACKAGER%": pkg.packager = fd.readline().strip("\n") elif line == "%REASON%": pkg.reason = int(fd.readline().strip("\n")) elif line == "%SIZE%" or line == "%CSIZE%": pkg.size = int(fd.readline().strip("\n")) elif line == "%MD5SUM%": pkg.md5sum = fd.readline().strip("\n") elif line == "%REPLACES%": pkg.replaces = _getsection(fd) elif line == "%FORCE%": fd.readline() pkg.force = 1 fd.close() pkg.checksum["desc"] = getmd5sum(filename) pkg.mtime["desc"] = getmtime(filename) # files filename = os.path.join(path, "files") if not os.path.isfile(filename): print "invalid db entry found (files missing) for pkg", pkgname return None fd = open(filename, "r") while 1: line = fd.readline() if not line: break line = line.strip("\n") if line == "%FILES%": while line: line = fd.readline().strip("\n") if line and line[-1] != "/": pkg.files.append(line) if line == "%BACKUP%": pkg.backup = _getsection(fd) fd.close() pkg.checksum["files"] = getmd5sum(filename) pkg.mtime["files"] = getmtime(filename) # depends filename = os.path.join(path, "depends") if not os.path.isfile(filename): print "invalid db entry found (depends missing) for pkg", pkgname return None fd = file(filename, "r") while 1: line = fd.readline() if not line: break line = line.strip("\n") if line == "%DEPENDS%": pkg.depends = _getsection(fd) elif line == "%OPTDEPENDS%": pkg.optdepends = _getsection(fd) elif line == "%CONFLICTS%": pkg.conflicts = _getsection(fd) elif line == "%PROVIDES%": pkg.provides = _getsection(fd) # TODO this was going to be changed, but isn't anymore #elif line == "%REPLACES%": # pkg.replaces = _getsection(fd) #elif line == "%FORCE%": # fd.readline() # pkg.force = 1 fd.close() pkg.checksum["depends"] = getmd5sum(filename) pkg.mtime["depends"] = getmtime(filename) # install filename = os.path.join(path, "install") if os.path.isfile(filename): pkg.checksum["install"] = getmd5sum(filename) pkg.mtime["install"] = getmtime(filename) return pkg