summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2006-02-09 01:10:08 +0000
committerZac Medico <zmedico@gentoo.org>2006-02-09 01:10:08 +0000
commitcbc38717d510b106a27dabeec517111fcd54a5b0 (patch)
treeafcc0a31a47f6d1bff7a498cae929540559c7ce7
parente390bbaa28903e6d3f6faca15bb4ff9714a889ee (diff)
downloadportage-cbc38717d510b106a27dabeec517111fcd54a5b0.tar.gz
portage-cbc38717d510b106a27dabeec517111fcd54a5b0.tar.bz2
portage-cbc38717d510b106a27dabeec517111fcd54a5b0.zip
use new write_atomic() function for all world file updates
svn path=/main/trunk/; revision=2681
-rwxr-xr-xbin/emaint2
-rwxr-xr-xbin/emerge4
-rwxr-xr-xbin/regenworld4
-rw-r--r--pym/portage.py12
4 files changed, 7 insertions, 15 deletions
diff --git a/bin/emaint b/bin/emaint
index 6f9977dee..e6d11fc15 100755
--- a/bin/emaint
+++ b/bin/emaint
@@ -40,7 +40,7 @@ class WorldHandler(object):
def fix(self):
errors = []
try:
- open(portage_const.WORLD_FILE, "w").write("\n".join(self.okay))
+ portage.write_atomic(portage_const.WORLD_FILE,"\n".join(self.okay))
except OSError:
errors.append(portage_const.WORLD_FILE + " could not be opened for writing")
return errors
diff --git a/bin/emerge b/bin/emerge
index 716068a24..795092e34 100755
--- a/bin/emerge
+++ b/bin/emerge
@@ -1916,7 +1916,7 @@ class depgraph:
myfavdict[myfavkey]=myfavkey
print ">>> Recording",myfavkey,"in \"world\" favorites file..."
if not "--fetchonly" in myopts:
- portage.writedict(myfavdict,portage.root+portage.WORLD_FILE,writekey=0)
+ portage.write_atomic(os.path.join(portage.root,portage.WORLD_FILE),"\n".join(myfavdict.values()))
portage.mtimedb["resume"]["mergelist"]=mymergelist[:]
@@ -2087,7 +2087,7 @@ class depgraph:
myfavdict[myfavkey]=myfavkey
print ">>> Recording",myfavkey,"in \"world\" favorites file..."
emergelog(" === ("+str(mergecount)+" of "+str(len(mymergelist))+") Updating world file ("+x[pkgindex]+")")
- portage.writedict(myfavdict,myroot+portage.WORLD_FILE,writekey=0)
+ portage.write_atomic(os.path.join(myroot,portage.WORLD_FILE),"\n".join(myfavdict.values()))
if ("noclean" not in portage.features) and (x[0] != "binary"):
short_msg = "emerge: ("+str(mergecount)+" of "+str(len(mymergelist))+") "+x[pkgindex]+" Clean Post"
diff --git a/bin/regenworld b/bin/regenworld
index 14ec51d5c..8723d7f20 100755
--- a/bin/regenworld
+++ b/bin/regenworld
@@ -88,6 +88,4 @@ for mykey in biglist:
print "add to world:",myfavkey
worldlist.append(myfavkey)
-myfile=open(portage.WORLD_FILE, "w")
-myfile.write(string.join(worldlist, '\n')+'\n')
-myfile.close()
+portage.write_atomic(portage.WORLD_FILE,"\n".join(worldlist))
diff --git a/pym/portage.py b/pym/portage.py
index 0018ab914..14992901f 100644
--- a/pym/portage.py
+++ b/pym/portage.py
@@ -92,7 +92,7 @@ try:
portage_uid, portage_gid
import portage_util
- from portage_util import grabdict, grabdict_package, grabfile, grabfile_package, \
+ from portage_util import grabdict, grabdict_package, grabfile, grabfile_package, write_atomic, \
map_dictlist_vals, pickle_read, pickle_write, stack_dictlist, stack_dicts, stack_lists, \
unique_array, varexpand, writedict, writemsg, writemsg_stdout, getconfig, dump_traceback
import portage_exception
@@ -5862,10 +5862,7 @@ class dblink:
os.chown(pdir, 0, portage_gid)
os.chmod(pdir, 02770)
- myworld=open(self.myroot+WORLD_FILE,"w")
- for x in newworldlist:
- myworld.write(x+"\n")
- myworld.close()
+ write_atomic(os.path.join(self.myroot,WORLD_FILE),"\n".join(newworldlist))
#do original postrm
if myebuildpath and os.path.exists(myebuildpath):
@@ -6874,10 +6871,7 @@ def do_upgrade(mykey):
if processed:
#update our internal mtime since we processed all our directives.
mtimedb["updates"][mykey]=os.stat(mykey)[stat.ST_MTIME]
- myworld=open("/"+WORLD_FILE,"w")
- for x in worldlist:
- myworld.write(x+"\n")
- myworld.close()
+ write_atomic(WORLD_FILE,"\n".join(worldlist))
print ""
def commit_mtimedb():