Fix more broken commitmessagefile handling. (trunk r6032:6033)
authorZac Medico <zmedico@gentoo.org>
Thu, 22 Feb 2007 12:48:53 +0000 (12:48 -0000)
committerZac Medico <zmedico@gentoo.org>
Thu, 22 Feb 2007 12:48:53 +0000 (12:48 -0000)
svn path=/main/branches/2.1.2/; revision=6034

bin/repoman

index bdd04b088afca2aaa80be4a57a1ee33b18a7d19a..67eab93a537eee6b1b59d15c113602f5e53f1164 100755 (executable)
@@ -1696,13 +1696,18 @@ else:
                # Force an unsigned commit when more than one Manifest needs to be signed.
                if repolevel < 3 and "sign" in repoman_settings.features:
                        if "--pretend" in myoptions:
-                               print "(/usr/bin/cvs -q commit -F "+commitmessagefile+")"
+                               print "(/usr/bin/cvs -q commit -F commitmessagefile)"
                        else:
-                               mymsg=open(commitmessagefile,"w")
+                               fd, commitmessagefile = tempfile.mkstemp(".repoman.msg")
+                               mymsg = os.fdopen(fd, "w")
                                mymsg.write(commitmessage)
                                mymsg.write("\n (Unsigned Manifest commit)")
                                mymsg.close()
                                retval=os.system("/usr/bin/cvs -q commit -F "+commitmessagefile)
+                               try:
+                                       os.unlink(commitmessagefile)
+                               except OSError:
+                                       pass
                                if retval:
                                        print "!!! Exiting on cvs (shell) error code:",retval
                                        sys.exit(retval)