~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/osutils.py

  • Committer: Martin Pool
  • Date: 2005-05-03 07:57:06 UTC
  • Revision ID: mbp@sourcefrog.net-20050503075706-8162f11e1c000c57
- allow trace file to grow up to 4MB

Show diffs side-by-side

added added

removed removed

Lines of Context:
84
84
 
85
85
def uuid():
86
86
    """Return a new UUID"""
87
 
    
88
 
    ## XXX: Could alternatively read /proc/sys/kernel/random/uuid on
89
 
    ## Linux, but we need something portable for other systems;
90
 
    ## preferably an implementation in Python.
91
87
    try:
92
 
        return chomp(file('/proc/sys/kernel/random/uuid').readline())
 
88
        return file('/proc/sys/kernel/random/uuid').readline().rstrip('\n')
93
89
    except IOError:
94
90
        return chomp(os.popen('uuidgen').readline())
95
91
 
96
92
 
97
 
def chomp(s):
98
 
    if s and (s[-1] == '\n'):
99
 
        return s[:-1]
100
 
    else:
101
 
        return s
102
 
 
103
 
 
104
93
def sha_file(f):
105
94
    import sha
106
 
    ## TODO: Maybe read in chunks to handle big files
107
95
    if hasattr(f, 'tell'):
108
96
        assert f.tell() == 0
109
97
    s = sha.new()
110
 
    s.update(f.read())
 
98
    BUFSIZE = 128<<10
 
99
    while True:
 
100
        b = f.read(BUFSIZE)
 
101
        if not b:
 
102
            break
 
103
        s.update(b)
111
104
    return s.hexdigest()
112
105
 
113
106
 
234
227
 
235
228
def compare_files(a, b):
236
229
    """Returns true if equal in contents"""
237
 
    # TODO: don't read the whole thing in one go.
238
230
    BUFSIZE = 4096
239
231
    while True:
240
232
        ai = a.read(BUFSIZE)