blob: aa9fc3ef5410092abb6565f2ee7757fb2a6809cc [file] [log] [blame]
lmrc6bd3a62009-06-10 19:38:06 +00001#!/usr/bin/python
lmr6f669ce2009-05-31 19:02:42 +00002"""
3Program that replaces the CD keys present on a KVM autotest configuration file.
4
5@copyright: Red Hat 2008-2009
6@author: uril@redhat.com (Uri Lublin)
7"""
8
lmrb635b862009-09-10 14:53:21 +00009import shutil, os, sys
10import common
11
lmr6f669ce2009-05-31 19:02:42 +000012
13def file_to_lines(filename):
14 f = open(filename, 'r')
15 lines = f.readlines()
16 f.close
17 return lines
18
19def lines_to_file(filename, lines):
20 f = open(filename, 'w')
21 f.writelines(lines)
22 f.close()
23
24def replace_var_with_val(lines, variables):
25 new = []
26 for line in lines:
27 for (var,val) in variables:
28 if var in line:
29 print 'replacing %s with %s in "%s"' % (var, val, line[:-1])
30 line = line.replace(var, val)
31 print ' ... new line is "%s"' % (line[:-1])
32 new.append(line)
33 return new
34
35def filter_comments(line):
36 return not line.strip().startswith('#')
37
38def filter_empty(line):
39 return len(line.strip()) != 0
40
41def line_to_pair(line):
42 x,y = line.split('=', 1)
43 return (x.strip(), y.strip())
44
45def read_vars(varfile):
46 varlines = file_to_lines(varfile)
47 varlines = filter(filter_comments, varlines)
48 varlines = filter(filter_empty, varlines)
49 vars = map(line_to_pair, varlines)
50 return vars
51
52def main(cfgfile, varfile):
53 # first save a copy of the original file (if does not exist)
54 backupfile = '%s.backup' % cfgfile
55 if not os.path.exists(backupfile):
56 shutil.copy(cfgfile, backupfile)
57
58 vars = read_vars(varfile)
59 datalines = file_to_lines(cfgfile)
60 newlines = replace_var_with_val(datalines, vars)
61 lines_to_file(cfgfile, newlines)
62
63
64if __name__ == '__main__':
65 def die(msg, val):
66 print msg
67 sys.exit(val)
68 if len(sys.argv) != 3:
69 die('usage: %s <kvm_tests-config-file> <varfile>', 1)
70 cfgfile = sys.argv[1]
71 varfile = sys.argv[2]
72 if not os.path.exists(cfgfile):
73 die('bad cfgfile "%s"' % cfgfile, 2)
74 if not os.path.exists(varfile):
75 die('bad varfile "%s"' % varfile, 2)
76 main(cfgfile, varfile)