Changes in tools/mktmpfs.py [78eb2dc:432f68a] in mainline


Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • tools/mktmpfs.py

    r78eb2dc r432f68a  
    3535import os
    3636import xstruct
    37 from imgutil import listdir_items, chunks
     37
     38exclude_names = set(['.svn', '.bzr'])
    3839
    3940HEADER = """little:
     
    7071        "Recursive directory walk"
    7172       
    72         for item in listdir_items(root):               
    73                 if item.is_file:                       
    74                         dentry = xstruct.create(DENTRY_FILE % len(item.name))
     73        for name in os.listdir(root):
     74                canon = os.path.join(root, name)
     75               
     76                if (os.path.isfile(canon) and (not name in exclude_names)):
     77                        size = os.path.getsize(canon)
     78                       
     79                        dentry = xstruct.create(DENTRY_FILE % len(name))
    7580                        dentry.kind = TMPFS_FILE
    76                         dentry.fname_len = len(item.name)
    77                         dentry.fname = item.name.encode('ascii')
    78                         dentry.flen = item.size
     81                        dentry.fname_len = len(name)
     82                        dentry.fname = name.encode('ascii')
     83                        dentry.flen = size
    7984                       
    8085                        outf.write(dentry.pack())
    8186                       
    82                         for data in chunks(item, 4096):
     87                        inf = open(canon, "rb")
     88                        rd = 0;
     89                        while (rd < size):
     90                                data = inf.read(4096);
    8391                                outf.write(data)
     92                                rd += len(data)
     93                        inf.close()
    8494               
    85                 elif item.is_dir:
    86                         dentry = xstruct.create(DENTRY_DIRECTORY % len(item.name))
     95                if (os.path.isdir(canon) and (not name in exclude_names)):
     96                        dentry = xstruct.create(DENTRY_DIRECTORY % len(name))
    8797                        dentry.kind = TMPFS_DIRECTORY
    88                         dentry.fname_len = len(item.name)
    89                         dentry.fname = item.name.encode('ascii')
     98                        dentry.fname_len = len(name)
     99                        dentry.fname = name.encode('ascii')
    90100                       
    91101                        outf.write(dentry.pack())
    92102                       
    93                         recursion(item.path, outf)
     103                        recursion(canon, outf)
    94104                       
    95105                        dentry = xstruct.create(DENTRY_NONE)
Note: See TracChangeset for help on using the changeset viewer.