Changeset 187

Show
Ignore:
Timestamp:
02/28/07 16:16:43 (6 years ago)
Author:
mk
Message:

Don't use os.tmpfile().

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/cheesecake/util.py

    r186 r187  
    88import sys 
    99import tarfile 
     10import tempfile 
    1011import time 
    1112import zipfile 
     
    1617PAD_VALUE = 4 
    1718 
     19def make_temp_file(): 
     20    tmpfd, tmpname = tempfile.mkstemp() 
     21    return os.fdopen(tmpfd), tmpname 
     22 
    1823def run_cmd(cmd, env=None, max_timeout=None): 
    1924    """Run command and return its return code and its output. 
     
    2732    arglist = cmd.split() 
    2833 
    29     output = os.tmpfile() 
     34    output, output_name = make_temp_file() 
    3035    try: 
    3136        p = Popen(arglist, stdout=output, stderr=STDOUT, env=env) 
     
    4550    p.wait() 
    4651    output.seek(0) 
    47     return p.returncode, output.read() 
     52 
     53    output_content = output.read() 
     54    output.close() 
     55    os.unlink(output_name) 
     56 
     57    return p.returncode, output_content 
    4858 
    4959def command_successful(cmd): 
     
    6474        if filename: 
    6575            self.fh = open(filename, 'w') 
     76            self.fname = None 
    6677        else: 
    67             self.fh = os.tmpfile() 
     78            self.fh, self.fname = make_temp_file() 
    6879 
    6980    def write(self, buf): 
     
    7788        """ 
    7889        self.fh.seek(0) 
    79         return self.fh.read() 
     90 
     91        output = self.fh.read() 
     92        self.fh.close() 
     93        if self.fname: 
     94            os.unlink(self.fname) 
     95 
     96        return output 
    8097 
    8198def pad_with_dots(msg, length=PAD_TEXT):