index : pacman | |
Archlinux32 fork of pacman | gitolite user |
summaryrefslogtreecommitdiff |
-rwxr-xr-x | pactest/util.py | 276 |
diff --git a/pactest/util.py b/pactest/util.py deleted file mode 100755 index e01a3b8f..00000000 --- a/pactest/util.py +++ /dev/null @@ -1,276 +0,0 @@ -#! /usr/bin/python -# -# Copyright (c) 2006 by Aurelien Foret <orelien@chez.com> -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. - - -import sys -import os -import hashlib -import stat - - -# ALPM -PM_ROOT = "/" -PM_DBPATH = "var/lib/pacman" -PM_LOCK = "var/lib/pacman/db.lck" -PM_CACHEDIR = "var/cache/pacman/pkg" -PM_EXT_PKG = ".pkg.tar.gz" -PM_EXT_DB = ".db.tar.gz" -PM_PACNEW = ".pacnew" -PM_PACORIG = ".pacorig" -PM_PACSAVE = ".pacsave" - -# Pacman -PACCONF = "etc/pacman.conf" - -# Pactest -TMPDIR = "tmp" -SYNCREPO = "var/pub" -LOGFILE = "var/log/pactest.log" - -verbose = 0 - -def vprint(msg): - if verbose: - print msg - -# -# Methods to generate files -# - -def getfilename(name): - """ - """ - filename = name - extra = "" - if filename[-1] == "*": - filename = filename.rstrip("*") - if filename.find(" -> ") != -1: - filename, extra = filename.split(" -> ") - elif filename.find("|") != -1: - filename, extra = filename.split("|") - return filename - -def mkfile(name, data = ""): - """ - """ - isdir = 0 - islink = 0 - setperms = 0 - filename = name - link = "" - perms = "" - - if filename[-1] == "*": - filename = filename.rstrip("*") - if filename.find(" -> ") != -1: - islink = 1 - filename, link = filename.split(" -> ") - elif filename.find("|") != -1: - setperms = 1 - filename, perms = filename.split("|") - if filename[-1] == "/": - isdir = 1 - - if isdir: - path = filename - else: - path = os.path.dirname(filename) - try: - if path and not os.path.isdir(path): - os.makedirs(path, 0755) - except: - error("mkfile: could not create directory hierarchy '%s'" % path) - - if isdir: - return - if islink: - curdir = os.getcwd() - if path: - os.chdir(path) - os.symlink(link, os.path.basename(filename)) - os.chdir(curdir) - else: - fd = file(filename, "w") - if data: - fd.write(data) - if data[-1] != "\n": - fd.write("\n") - fd.close() - if setperms: - os.chmod(filename, int(perms, 8)) - -def mkdescfile(filename, pkg): - """ - """ - - data = [] - - # desc - #data.append("pkgname = %s" % pkg.name) - #data.append("pkgver = %s" % pkg.version) - if pkg.desc: - data.append("pkgdesc = %s" % pkg.desc) - if pkg.url: - data.append("url = %s" % pkg.url) - if pkg.builddate: - data.append("builddate = %s" % pkg.builddate) - if pkg.packager: - data.append("packager = %s" % pkg.packager) - if pkg.size: - data.append("size = %s" % pkg.size) - if pkg.arch: - data.append("arch = %s" % pkg.arch) - for i in pkg.groups: - data.append("group = %s" % i) - for i in pkg.license: - data.append("license = %s" % i) - if pkg.md5sum: - data.append("md5sum = %s" % pkg.md5sum) - - # depends - for i in pkg.replaces: - data.append("replaces = %s" % i) - for i in pkg.depends: - data.append("depend = %s" % i) - for i in pkg.optdepends: - data.append("optdepend = %s" % i) - for i in pkg.conflicts: - data.append("conflict = %s" % i) - for i in pkg.provides: - data.append("provides = %s" % i) - for i in pkg.backup: - data.append("backup = %s" % i) - if pkg.force: - data.append("force = 1") - - mkfile(filename, "\n".join(data)) - -def mkinstallfile(filename, install): - """ - """ - data = [] - for key, value in install.iteritems(): - if value: - data.append("%s() {\n%s\n}" % (key, value)) - - mkfile(filename, "\n".join(data)) - -def mkcfgfile(filename, root, option, db): - """ - """ - # Options - data = ["[options]"] - for key, value in option.iteritems(): - data.extend(["%s = %s" % (key, j) for j in value]) - - # Repositories - for key, value in db.iteritems(): - if key != "local": - data.append("[%s]\n" \ - "Server = file://%s" \ - % (value.treename, - os.path.join(root, SYNCREPO, value.treename))) - for optkey, optval in value.option.iteritems(): - data.extend(["%s = %s" % (optkey, j) for j in optval]) - - mkfile(os.path.join(root, filename), "\n".join(data)) - - -# -# MD5 helpers -# - -def getmd5sum(filename): - """ - """ - if not os.path.isfile(filename): - print "file %s does not exist!" % filename - return "" - fd = open(filename, "rb") - checksum = hashlib.md5() - while 1: - block = fd.read(1048576) - if not block: - break - checksum.update(block) - fd.close() - digest = checksum.digest() - return "%02x"*len(digest) % tuple(map(ord, digest)) - -def mkmd5sum(data): - """ - """ - checksum = hashlib.md5() - checksum.update("%s\n" % data) - digest = checksum.digest() - return "%02x"*len(digest) % tuple(map(ord, digest)) - - -# -# Mtime helpers -# - -def getmtime(filename): - """ - """ - if not os.path.exists(filename): - print "path %s does not exist!" % filename - return 0, 0, 0 - st = os.stat(filename) - return st[stat.ST_ATIME], st[stat.ST_MTIME], st[stat.ST_CTIME] - -def diffmtime(mt1, mt2): - """ORE: TBD - """ - return not mt1 == mt2 - - -# -# Miscellaneous -# - -def which(filename): - path = os.environ["PATH"].split(':') - for p in path: - f = os.path.join(p, filename) - if os.access(f, os.F_OK): - return f - return None - -def grep(filename, pattern): - lines = file(filename, 'r').readlines() - for line in lines: - if not line: break - if line.find(pattern) != -1: - return True - return False - -def mkdir(dir): - if os.path.isdir(dir): - return - elif os.path.isfile(dir): - raise OSError("'%s' already exists and is not a directory" % dir) - else: - parent, thisdir = os.path.split(dir) - if parent: mkdir(parent) #recurse to make all parents - vprint("making dir %s" % thisdir) - if thisdir: os.mkdir(dir) - -if __name__ == "__main__": - pass - -# vim: set ts=4 sw=4 et: |