Exemple #1
0
    def expand(self):

        import stat
        from BlockDevice import BlockDevice
        from CharacterDevice import CharacterDevice
        from File import File
        from Link import Link
        from NamedPipe import NamedPipe
        from Socket import Socket

        subdirectories = []

        import os
        children = os.listdir(self.fullname())

        for name in children:

            if self._children.has_key(name): continue

            pathname = os.path.join(self.fullname(), name)
            # PORTABILITY: lstat is unix only
            mode = os.lstat(pathname)[stat.ST_MODE]

            if stat.S_ISDIR(mode):
                node = Directory(name, self)
                subdirectories.append(node)
            elif stat.S_ISREG(mode):
                node = File(name, self)
            elif stat.S_ISLNK(mode):
                node = Link(name, self)
            elif stat.S_ISSOCK(mode):
                node = Socket(name, self)
            elif stat.S_ISFIFO(mode):
                node = NamedPipe(name, self)
            elif stat.S_ISCHR(mode):
                node = CharacterDevice(name, self)
            elif stat.S_ISBLK(mode):
                node = BlockDevice(name, self)
            else:
                Firewall.hit("unknown file type: mode=%x" % mode)

            self._children[node.name] = node

        self._subdirectories = subdirectories
        return subdirectories
Exemple #2
0
 def __init__(self, adf_file, read_only=False):
     BlockDevice.__init__(self, read_only)
     self.adf_file = adf_file
     self.dirty = False
Exemple #3
0
 def __init__(self, hdf_file, read_only=False):
     BlockDevice.__init__(self, read_only)
     self.hdf_file = hdf_file
     self.dirty = False
     self.fh = None
Exemple #4
0
 def __init__(self, adf_file, read_only=False):
     BlockDevice.__init__(self, read_only)
     self.adf_file = adf_file
     self.dirty = False
Exemple #5
0
 def __init__(self, hdf_file, read_only=False):
   BlockDevice.__init__(self, read_only)
   self.hdf_file = hdf_file   
   self.dirty = False
   self.fh = None
Exemple #6
0
    def expand(self):

        import os
        import stat
        from BlockDevice import BlockDevice
        from CharacterDevice import CharacterDevice
        from File import File
        from Link import Link
        from NamedPipe import NamedPipe
        from Socket import Socket

        import journal
        debug = journal.debug("pyre.filesystem")

        files = []
        subdirectories = []
        self._children = {}

        root = self.path
        children = os.listdir(root)
        debug.log("directory '%s' has %d files" % (self.name, len(children)))

        count = 0
        for name in children:
            count += 1

            if name in self._children:
                continue

            pathname = os.path.join(root, name)
            # PORTABILITY: lstat is unix only
            mode = os.lstat(pathname)[stat.ST_MODE]

            if stat.S_ISDIR(mode):
                node = Directory(name, self)
                subdirectories.append(node)
            elif stat.S_ISREG(mode):
                node = File(name, self)
                files.append(node)
            elif stat.S_ISLNK(mode):
                node = Link(name, self)
            elif stat.S_ISSOCK(mode):
                node = Socket(name, self)
            elif stat.S_ISFIFO(mode):
                node = NamedPipe(name, self)
            elif stat.S_ISCHR(mode):
                node = CharacterDevice(name, self)
            elif stat.S_ISBLK(mode):
                node = BlockDevice(name, self)
            else:
                Firewall.hit("unknown file type: mode=%x" % mode)

            self._children[node.name] = node

            if not count % 1000:
                debug.log("processed %d files" % count)

        debug.log("total files processed: %d" % count)

        self._files = files
        self._subdirectories = subdirectories

        return subdirectories