]>
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 | |
3ea4b156 | 52 | def collect_files(log): |
2b9e7381 | 53 | f = open(log, 'r') |
dfff8bd5 MM |
54 | rx = re.compile(r"^Wrote: (/home.*\.rpm)$") |
55 | files = [] | |
56 | for l in f.xreadlines(): | |
57 | m = rx.search(l) | |
58 | if m: | |
59 | files.append(m.group(1)) | |
2b9e7381 | 60 | f.close() |
dfff8bd5 | 61 | return files |
2b9e7381 AM |
62 | |
63 | def find_last_section(log): | |
64 | f = open(log, 'r') | |
cfece95e AM |
65 | rx1 = re.compile(r"^Executing\(%(\w+)\).*$") |
66 | rx2 = re.compile(r"^Processing (files):.*$") | |
2b9e7381 AM |
67 | last_section = None |
68 | for l in f: | |
cfece95e AM |
69 | m = rx1.search(l) |
70 | if not m: | |
71 | m = rx2.search(l) | |
2b9e7381 | 72 | if m: |
99247f87 | 73 | last_section = m.group(1) |
2b9e7381 AM |
74 | f.close() |
75 | return last_section |