1. Mike Bayer
  2. mako

Issues

Issue #101 resolved

verify_directory should respect umask

guest
created an issue

Currently util.verify_directory is hardcoding the mode of 0750 in its call to os.makedirs. The following patch checks the umask and passes mode along accordingly:

Index: lib/mako/util.py

--- lib/mako/util.py (revision 439) +++ lib/mako/util.py (working copy) @@ -17,6 +17,7 @@ from StringIO import StringIO

import codecs, re, weakref, os, time +import subprocess

try: import threading @@ -38,7 +39,10 @@ while not os.path.exists(dir): try: tries += 1 - os.makedirs(dir, 0750) + umask, _ = subprocess.Popen(['sh', '-c', 'umask'], stdout=subprocess.PIPE).communicate() + umask = int(umask, 8) + mode = int(oct(0777 ^ umask), 8) + os.makedirs(dir, mode) except: if tries > 5: raise

Comments (7)

  1. guest reporter

    note: the line

    mode = int(oct(0777 ^ umask), 8)

    could of course be simplified to

    mode = 0777 ^ umask

    if you're into the whole brevity thing.

  2. guest reporter

    alternatively it may be preferable to effect more permissions-sensitive behavior via configuration options mako.umask or some such.

  3. guest reporter

    Replying to [comment:4 guest]:

    decided this is really a [http://bugs.python.org/issue5220 python bug]

    scratch that. it seems like we were misunderstanding the mode parameter (see response in the python ticket). otherwise why pass 0750? it effectively throws out part of the umask.

  4. Log in to comment