diff options
-rwxr-xr-x | bin/emaint | 2 | ||||
-rwxr-xr-x | bin/emerge | 4 | ||||
-rwxr-xr-x | bin/regenworld | 4 | ||||
-rw-r--r-- | pym/portage.py | 12 |
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(): |