From 71cfafbd5fb34d125cdfba7b68a5401e30218c9b Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Thu, 30 Mar 2006 09:41:19 +0000 Subject: Add a reusable ensure_dirs() function and use it for DISTDIR initialization. svn path=/main/trunk/; revision=3040 --- pym/portage.py | 25 +------------------------ 1 file changed, 1 insertion(+), 24 deletions(-) (limited to 'pym/portage.py') diff --git a/pym/portage.py b/pym/portage.py index 56aa7b2df..9ce918114 100644 --- a/pym/portage.py +++ b/pym/portage.py @@ -2734,30 +2734,7 @@ def doebuild(myebuild,mydo,myroot,mysettings,debug=0,listonly=0,fetchonly=0,clea for x in distdir_dirs: mydir = os.path.join(mysettings["DISTDIR"], x) - try: - os.makedirs(mydir) - except OSError, oe: - if errno.EEXIST == oe.errno: - pass - elif oe.errno in (errno.EPERM, errno.EROFS): - writemsg("!!! %s\n" % oe) - raise portage_exception.OperationNotPermitted("mkdir '%s'" % mydir) - else: - raise - try: - initial_stat = os.stat(mydir) - apply_secpass_permissions(mydir, - gid=portage_gid, mode=dirmode, mask=modemask, stat_cached=initial_stat) - result_stat = os.stat(mydir) - except OSError, oe: - if errno.EPERM == oe.errno: - writemsg("!!! %s\n" % oe) - raise portage_exception.OperationNotPermitted("stat('%s')" % mydir) - raise - # Trigger recursion when the top level directory does not - # initially match our permission requirements. - if result_stat.st_gid != initial_stat.st_gid or \ - result_stat.st_mode & 07777 != initial_stat.st_mode & 07777: + if portage_util.ensure_dirs(mydir, gid=portage_gid, mode=dirmode, mask=modemask): writemsg("Adjusting permissions recursively: '%s'\n" % mydir) def onerror(e): raise # bail out on the first error that occurs during recursion -- cgit v1.2.3-1-g7c22