summaryrefslogtreecommitdiffstats
path: root/test/pacman/util.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/pacman/util.py')
-rw-r--r--[-rwxr-xr-x]test/pacman/util.py127
1 files changed, 49 insertions, 78 deletions
diff --git a/test/pacman/util.py b/test/pacman/util.py
index 47fde310..60dea9e8 100755..100644
--- a/test/pacman/util.py
+++ b/test/pacman/util.py
@@ -19,7 +19,6 @@
import os
import re
import hashlib
-import stat
# ALPM
@@ -48,78 +47,65 @@ def vprint(msg):
# Methods to generate files
#
-def getfilename(name):
- """
- """
- filename = name
- extra = ""
+def getfileinfo(filename):
+ data = {
+ 'changed': False,
+ 'isdir': False,
+ 'islink': False,
+ 'link': None,
+ 'hasperms': False,
+ 'perms': None,
+ }
if filename[-1] == "*":
+ data["changed"] = True
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(" -> ")
+ data["islink"] = True
+ data["link"] = link
elif filename.find("|") != -1:
- setperms = 1
filename, perms = filename.split("|")
+ data["hasperms"] = True
+ data["perms"] = int(perms, 8)
if filename[-1] == "/":
- isdir = 1
+ data["isdir"] = True
- if isdir:
- path = filename
- else:
- path = os.path.dirname(filename)
- if path and not os.path.isdir(path):
- os.makedirs(path, 0755)
+ data["filename"] = filename
+ return data
+
+def mkfile(base, name, data=""):
+ info = getfileinfo(name)
+ filename = info["filename"]
- if isdir:
+ path = os.path.join(base, filename)
+ if info["isdir"]:
+ if not os.path.isdir(path):
+ os.makedirs(path, 0755)
return
- if islink:
- curdir = os.getcwd()
- if path:
- os.chdir(path)
- os.symlink(link, os.path.basename(filename))
- os.chdir(curdir)
+
+ dir_path = os.path.dirname(path)
+ if dir_path and not os.path.isdir(dir_path):
+ os.makedirs(dir_path, 0755)
+
+ if info["islink"]:
+ os.symlink(info["link"], path)
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 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))
+ writedata(path, data)
+
+ if info["perms"]:
+ os.chmod(path, info["perms"])
+
+def writedata(filename, data):
+ if isinstance(data, list):
+ data = "\n".join(data)
+ fd = file(filename, "w")
+ if data:
+ fd.write(data)
+ if data[-1] != "\n":
+ fd.write("\n")
+ fd.close()
def mkcfgfile(filename, root, option, db):
- """
- """
# Options
data = ["[options]"]
for key, value in option.iteritems():
@@ -132,13 +118,14 @@ def mkcfgfile(filename, root, option, db):
if key != "local":
value = db[key]
data.append("[%s]\n" \
+ "SigLevel = %s\n" \
"Server = file://%s" \
- % (value.treename,
+ % (value.treename, value.getverify(), \
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))
+ mkfile(root, filename, "\n".join(data))
#
@@ -146,8 +133,6 @@ def mkcfgfile(filename, root, option, db):
#
def getmd5sum(filename):
- """
- """
if not os.path.isfile(filename):
return ""
fd = open(filename, "rb")
@@ -161,26 +146,12 @@ def getmd5sum(filename):
return checksum.hexdigest()
def mkmd5sum(data):
- """
- """
checksum = hashlib.md5()
checksum.update("%s\n" % data)
return checksum.hexdigest()
#
-# Mtime helpers
-#
-
-def getmtime(filename):
- """
- """
- if not os.path.exists(filename):
- return None, None, None
- st = os.lstat(filename)
- return st[stat.ST_ATIME], st[stat.ST_MTIME], st[stat.ST_CTIME]
-
-#
# Miscellaneous
#