]>
Commit | Line | Data |
---|---|---|
dfff8bd5 MM |
1 | # vi: encoding=utf-8 ts=8 sts=4 sw=4 et |
2 | ||
b03a96bc MM |
3 | import re |
4 | import sys | |
c8782384 MM |
5 | import os |
6 | import log | |
bdc3292c MM |
7 | import string |
8 | ||
8f84e84d AM |
9 | def uuid_python(): |
10 | return str(uuid_random()) | |
11 | ||
2037736d AM |
12 | def uuid_external(): |
13 | f = os.popen("uuidgen 2>&1") | |
14 | u = string.strip(f.read()) | |
15 | f.close() | |
16 | if len(u) != 36: | |
939af6d7 | 17 | raise Exception, "uuid: fatal, cannot generate uuid: %s" % u |
2037736d AM |
18 | return u |
19 | ||
20 | # uuid module available in python >= 2.5 | |
21 | try: | |
8f84e84d | 22 | from uuid import uuid4 as uuid_random |
2037736d AM |
23 | except ImportError: |
24 | uuid = uuid_external | |
8f84e84d AM |
25 | else: |
26 | uuid = uuid_python | |
2037736d | 27 | |
b03a96bc | 28 | def pkg_name(nvr): |
dfff8bd5 | 29 | return re.match(r"(.+)-[^-]+-[^-]+", nvr).group(1) |
e6376553 | 30 | |
b03a96bc | 31 | def msg(m): |
dfff8bd5 | 32 | sys.stderr.write(m) |
c8782384 MM |
33 | |
34 | def sendfile(src, dst): | |
dfff8bd5 MM |
35 | cnt = 0 |
36 | while 1: | |
37 | s = src.read(10000) | |
38 | if s == "": break | |
39 | cnt += len(s) | |
40 | dst.write(s) | |
41 | return cnt | |
c8782384 MM |
42 | |
43 | def append_to(log, msg): | |
dfff8bd5 MM |
44 | f = open(log, "a") |
45 | f.write("%s\n" % msg) | |
46 | f.close() | |
c8782384 MM |
47 | |
48 | def clean_tmp(dir): | |
dfff8bd5 MM |
49 | # FIXME: use python |
50 | os.system("rm -f %s/* 2>/dev/null; rmdir %s 2>/dev/null" % (dir, dir)) | |
c8782384 | 51 | |
a73fab54 | 52 | def collect_files(log, basedir = "/home"): |
2b9e7381 | 53 | f = open(log, 'r') |
a73fab54 | 54 | rx = re.compile(r"^Wrote: (%s.*\.rpm)$" % basedir) |
7a454cb5 | 55 | proc = re.compile(r"^Processing (files):.*$") |
dfff8bd5 | 56 | files = [] |
7a454cb5 AM |
57 | for l in reversed(list(f.xreadlines())): |
58 | if proc.match(l): | |
59 | break | |
dfff8bd5 MM |
60 | m = rx.search(l) |
61 | if m: | |
62 | files.append(m.group(1)) | |
2b9e7381 | 63 | f.close() |
dfff8bd5 | 64 | return files |
2b9e7381 AM |
65 | |
66 | def find_last_section(log): | |
67 | f = open(log, 'r') | |
cfece95e AM |
68 | rx1 = re.compile(r"^Executing\(%(\w+)\).*$") |
69 | rx2 = re.compile(r"^Processing (files):.*$") | |
2b9e7381 AM |
70 | last_section = None |
71 | for l in f: | |
cfece95e AM |
72 | m = rx1.search(l) |
73 | if not m: | |
74 | m = rx2.search(l) | |
2b9e7381 | 75 | if m: |
99247f87 | 76 | last_section = m.group(1) |
2b9e7381 AM |
77 | f.close() |
78 | return last_section |