summaryrefslogtreecommitdiff
path: root/pactest/util.py
diff options
context:
space:
mode:
authorAllan McRae <allan@archlinux.org>2010-05-30 14:41:59 +1000
committerDan McGee <dan@archlinux.org>2010-06-02 13:14:51 -0500
commit844d82fad811626b0b8e54db60ee4b3ea32a3cb9 (patch)
treed6ae52c513db060b1f81227c34bfb366ea3fa58c /pactest/util.py
parentccea1b55766200c1ab371cf0f3b38c4cebdb2063 (diff)
downloadpacman-844d82fad811626b0b8e54db60ee4b3ea32a3cb9.tar.xz
Move pacman test suite
Move the test suite to test/pacman in order to make a logical location for a future makepkg test suite. Signed-off-by: Allan McRae <allan@archlinux.org> Signed-off-by: Dan McGee <dan@archlinux.org>
Diffstat (limited to 'pactest/util.py')
-rwxr-xr-xpactest/util.py276
1 files changed, 0 insertions, 276 deletions
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: