aboutsummaryrefslogtreecommitdiffstats
path: root/tools/manager-file.py
diff options
context:
space:
mode:
Diffstat (limited to 'tools/manager-file.py')
-rw-r--r--tools/manager-file.py18
1 files changed, 15 insertions, 3 deletions
diff --git a/tools/manager-file.py b/tools/manager-file.py
index 45f640403..e1b51a616 100644
--- a/tools/manager-file.py
+++ b/tools/manager-file.py
@@ -163,13 +163,25 @@ if __name__ == '__main__':
environment = {}
execfile(sys.argv[1], environment)
- f = open('%s/%s.manager' % (sys.argv[2], environment['MANAGER']), 'w')
+ filename = '%s/%s.manager' % (sys.argv[2], environment['MANAGER'])
+ try:
+ os.remove(filename)
+ except OSError:
+ pass
+ f = open(filename + '.tmp', 'w')
write_manager(f, environment['MANAGER'], environment['PARAMS'])
f.close()
-
- f = open('%s/param-spec-struct.h' % sys.argv[2], 'w')
+ os.rename(filename + '.tmp', filename)
+
+ filename = '%s/param-spec-struct.h' % sys.argv[2]
+ try:
+ os.remove(filename)
+ except OSError:
+ pass
+ f = open(filename + '.tmp', 'w')
for protocol in environment['PARAMS']:
write_c_params(f, environment['MANAGER'], protocol,
environment['STRUCTS'][protocol],
environment['PARAMS'][protocol])
f.close()
+ os.rename(filename + '.tmp', filename)