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
def __init__(self, adf_file, read_only=False): BlockDevice.__init__(self, read_only) self.adf_file = adf_file self.dirty = False
def __init__(self, hdf_file, read_only=False): BlockDevice.__init__(self, read_only) self.hdf_file = hdf_file self.dirty = False self.fh = None
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