diff options
-rw-r--r-- | fsset.py | 48 | ||||
-rw-r--r-- | isys/imount.c | 2 | ||||
-rw-r--r-- | isys/isys.py | 4 |
3 files changed, 38 insertions, 16 deletions
@@ -287,7 +287,7 @@ class FATFileSystem(FileSystemType): fileSystemTypeRegister(FATFileSystem()) -class ForeignFileSystem(FileSystemType): +class ForeignFileSystemType(FileSystemType): def __init__(self): FileSystemType.__init__(self) self.formattable = 0 @@ -297,14 +297,39 @@ class ForeignFileSystem(FileSystemType): def formatDevice(self, entry, progress, message, chroot='/'): return -fileSystemTypeRegister(ForeignFileSystem()) +fileSystemTypeRegister(ForeignFileSystemType()) + +class PsudoFileSystem(FileSystemType): + def __init__(self, name): + FileSystemType.__init__(self) + self.formattable = 0 + self.checked = 0 + self.name = name + + def formatDevice(self, entry, progress, message, chroot='/'): + return + + def isSupported(self): + return 0 + +class ProcFileSystem(PsudoFileSystem): + def __init__(self): + PsudoFileSystem.__init__(self, "proc") + +fileSystemTypeRegister(ProcFileSystem()) + +class DevptsFileSystem(PsudoFileSystem): + def __init__(self): + PsudoFileSystem.__init__(self, "devpts") + +fileSystemTypeRegister(DevptsFileSystem()) class FileSystemSet: def __init__(self): - self.entries = [] self.messageWindow = None self.progressWindow = None - + self.reset() + def registerMessageWindow(self, method): self.messageWindow = method @@ -313,6 +338,11 @@ class FileSystemSet: def reset (self): self.entries = [] + proc = FileSystemSetEntry(Device(), '/proc', fileSystemTypeGet("proc")) + self.add(proc) + pts = FileSystemSetEntry(Device(), '/dev/pts', + fileSystemTypeGet("devpts"), "gid=5,mode=620") + self.add(pts) def add (self, entry): self.entries.append(entry) @@ -456,14 +486,6 @@ class FileSystemSet: entry.mountpoint, msg)) sys.exit(0) - # XXX remove special case... - try: - os.mkdir (instPath + '/proc') - except: - pass - - isys.mount('/proc', instPath + '/proc', 'proc') - def umountFilesystems(self, instPath, ignoreErrors = 0): # XXX remove special case try: @@ -551,7 +573,7 @@ class Device: return self.device def setupDevice (self, chroot='/', devPrefix='/tmp'): - pass + return self.device def cleanupDevice (self, chroot, devPrefix='/tmp'): pass diff --git a/isys/imount.c b/isys/imount.c index a2c01ad70..5c0cec4ad 100644 --- a/isys/imount.c +++ b/isys/imount.c @@ -56,7 +56,7 @@ int doPwMount(char * dev, char * where, char * fs, int rdonly, int istty, if (mkdirChain(where)) return IMOUNT_ERR_ERRNO; - if (!isnfs && *dev == '/') { + if (!isnfs && (*dev == '/' || !strcmp(dev, "none"))) { buf = dev; } else if (!isnfs) { buf = alloca(200); diff --git a/isys/isys.py b/isys/isys.py index 525877da4..5dae4127b 100644 --- a/isys/isys.py +++ b/isys/isys.py @@ -108,7 +108,7 @@ def ddfile(file, megs, pw = None): def mount(device, location, fstype = "ext2", readOnly = 0): location = os.path.normpath(location) - if device[0] != "/": + if device and device != "none" and device[0] != "/": devName = "/tmp/%s" % device makeDevInode(device, devName) device = devName @@ -122,7 +122,7 @@ def mount(device, location, fstype = "ext2", readOnly = 0): if not rc: mountCount[location] = 1 - if device != "/proc" and device != "/usbdevfs": + if device != "none": os.unlink(device) return rc |