Changeset 59

Show
Ignore:
Timestamp:
01/25/08 02:58:12 (16 years ago)
Author:
broder
Message:

Whoops - I made lots of changes here. The script now produces the same
tarballs if you run it more than once

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/locker-bin/macathenaDist.py

    r46 r59  
    11#!/usr/bin/env python 
    22 
     3import gzip 
    34import tarfile 
    45import os 
     
    89 
    910mtime = 0 
     11 
     12def _write_gzip_header(self): 
     13        self.fileobj.write('\037\213')             # magic header 
     14        self.fileobj.write('\010')                 # compression method 
     15        fname = self.filename[:-3] 
     16        flags = 0 
     17        if fname: 
     18                flags = gzip.FNAME 
     19        self.fileobj.write(chr(flags)) 
     20        gzip.write32u(self.fileobj, long(mtime)) 
     21        self.fileobj.write('\002') 
     22        self.fileobj.write('\377') 
     23        if fname: 
     24                self.fileobj.write(fname + '\000') 
     25 
     26gzip.GzipFile._write_gzip_header = _write_gzip_header 
    1027 
    1128class MyTarFile(tarfile.TarFile): 
     
    2138                return info 
    2239 
    23 def packageSvn(module, svnModule, extras=[], svnroot='/afs/dev.mit.edu/source/svn-repos', revision='HEAD'): 
     40def packageSvn(module, svnModule, extras=[], svnroot='file:///afs/dev.mit.edu/source/svn-repos', revision='HEAD'): 
    2441        os.system('attach macathena >/dev/null 2>/dev/null') 
    2542        os.chdir('/mit/macathena/build') 
    2643         
    27         os.system('svn export -r %s file://%s/%s %s >/dev/null 2>&1' % (revision, svnroot, svnModule, module)) 
     44        os.system('svn export -r %s %s/%s %s >/dev/null 2>&1' % (revision, svnroot, svnModule, module)) 
    2845         
    29         for extra in extras: 
    30                 os.system('svn export -r %s file://%s/%s >/dev/null 2>&1' % (revision, svnroot, extra)) 
    31                 os.system('mv %s %s' % (basename(extra), module)) 
     46        if extras: 
     47                for extra in extras: 
     48                        os.system('svn export -r %s %s/%s >/dev/null 2>&1' % (revision, svnroot, extra)) 
     49                        os.system('mv %s %s' % (basename(extra), module)) 
    3250         
    33         version_info = os.popen('svn info -r %s file://%s/%s' % (revision, svnroot, svnModule)).readlines() 
     51        version_info = os.popen('svn info -r %s %s/%s' % (revision, svnroot, svnModule)).readlines() 
    3452        for line in version_info: 
    3553                if line.startswith('Last Changed Date: '): 
     
    4058        mtime = int(time.strftime("%s", time.strptime(time_string, "%Y-%m-%d %H:%M:%S"))) 
    4159         
    42         tarball = "%s-%s" % (module, revision) 
     60        tarball = "%s-svn%s" % (module, revision) 
    4361        os.rename(module, tarball) 
    4462         
     
    92110        'libxj': ['trunk/athena/lib/Xj'], 
    93111        'xcluster': ['trunk/athena/bin/xcluster', ['attic/packs/build/aclocal.m4']], 
    94         'discuss': ['trunk/athena/bin/discuss']} 
     112        'discuss': ['trunk/athena/bin/discuss'], 
     113# Our packages: 
     114        'add': ['trunk/source/add', False, 'https://macathena.mit.edu/svn'], 
     115        'attach': ['trunk/source/attach', False, 'https://macathena.mit.edu/svn'], 
     116        'pyhesiodfs': ['trunk/source/pyhesiodfs', False, 'https://macathena.mit.edu/svn'] 
     117
    95118 
    96119if __name__ == '__main__':