Changeset 258 in tailor for vcpx/svn.py
- Timestamp:
- 04/18/05 17:22:05 (8 years ago)
- Hash name:
- 20050418152205-92b7f-0e54d3d8f512f84d4520a227a8a0f26317601825
- File:
-
- 1 edited
-
vcpx/svn.py (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
vcpx/svn.py
r253 r258 45 45 COMMAND = "svn propset --quiet %(property)s %(value)s %(entry)s" 46 46 47 import shutil, tempfile 48 49 class ReopeableNamedTemporaryFile: 50 """ 51 This uses tempfile.mkstemp() to generate a secure temp file. It then closes 52 the file, leaving a zero-length file as a placeholder. You can get the 53 filename with ReopenableNamedTemporaryFile.name. When the 54 ReopenableNamedTemporaryFile instance is garbage collected or its shutdown() 55 method is called, it deletes the file. 56 57 Copied from Zooko's pyutil.fileutil, http://zooko.com/repos/pyutil 58 """ 59 def __init__(self, suffix=None, prefix=None, dir=None, text=None): 60 self.name = mkstemp(suffix, prefix, dir, text)[1] 61 62 def __del__(self): 63 self.shutdown() 64 65 def shutdown(self): 66 os.remove(self.name) 47 67 48 68 class SvnLog(SystemCommand): … … 51 71 def __call__(self, output=None, dry_run=False, **kwargs): 52 72 from tempfile import mktemp 53 from os import remove54 73 55 74 quiet = kwargs.get('quiet', True) … … 74 93 kwargs['endrev'] = 'HEAD' 75 94 76 logfn = kwargs['tempfilename'] = mktemp('svn', 'tailor') 95 rontf = ReopenableNamedTemporaryFile('svn', 'tailor') 96 logfn = kwargs['tempfilename'] = rontf.name 77 97 78 98 SystemCommand.__call__(self, output=False, dry_run=dry_run, **kwargs) 79 99 80 log = open(logfn) 81 if not SystemCommand.VERBOSE: 82 remove(logfn) 83 84 return log 100 return open(logfn) 85 101 86 102 … … 90 106 def __call__(self, output=None, dry_run=False, **kwargs): 91 107 logfile = kwargs.get('logfile') 108 rontf = ReopenableNamedTemporaryFile('svn', 'tailor') 92 109 if not logfile: 93 from tempfile import NamedTemporaryFile94 95 log = NamedTemporaryFile(bufsize=0)96 110 logmessage = kwargs.get('logmessage') 97 111 if logmessage: 112 log = open(rontf.name, "w") 98 113 log.write(logmessage) 99 100 kwargs['logfile'] = log.name 114 log.close() 115 116 kwargs['logfile'] = rontf.name 101 117 102 118 return SystemCommand.__call__(self, output=output,
Note: See TracChangeset
for help on using the changeset viewer.
