aboutsummaryrefslogtreecommitdiff
path: root/python
diff options
context:
space:
mode:
authorGravatar Miklos Szeredi <miklos@szeredi.hu>2001-11-20 19:25:06 +0000
committerGravatar Miklos Szeredi <miklos@szeredi.hu>2001-11-20 19:25:06 +0000
commit729531e8274b17dbe83f0ba6d534008483dd071f (patch)
tree65f39fe747eaeb2e67252894d7ba6c9966a2f63f /python
parent25ac8b793f1236d470887f12e21ecc68fdceca12 (diff)
t
Diffstat (limited to 'python')
-rwxr-xr-xpython/xmp.py83
1 files changed, 83 insertions, 0 deletions
diff --git a/python/xmp.py b/python/xmp.py
new file mode 100755
index 0000000..271e269
--- /dev/null
+++ b/python/xmp.py
@@ -0,0 +1,83 @@
+#!/usr/bin/env python
+#
+# Copyright (C) 2001 Jeff Epler <jepler@unpythonic.dhs.org>
+#
+# This program can be distributed under the terms of the GNU GPL.
+# See the file COPYING.
+#
+
+from fuse import Fuse
+import os
+from errno import *
+from stat import *
+
+class Xmp(Fuse):
+ flags = 1
+
+ def getattr(self, path):
+ return os.lstat(path)
+
+ def readlink(self, path):
+ return os.readlink(path)
+
+ def getdir(self, path):
+ return map(lambda x: (x,0), os.listdir(path))
+
+ def unlink(self, path):
+ return os.unlink(path)
+
+ def rmdir(self, path):
+ return os.rmdir(path)
+
+ def symlink(self, path, path1):
+ return os.symlink(path, path1)
+
+ def rename(self, path, path1):
+ return os.rename(path, path1)
+
+ def link(self, path, path1):
+ return os.link(path, path1)
+
+ def chmod(self, path, mode):
+ return os.chmod(path, mode)
+
+ def chown(self, path, user, group):
+ return os.chown(path, user, group)
+
+ def truncate(self, path, size):
+ f = open(path, "w+")
+ return f.truncate(size)
+
+ def mknod(self, path, mode, dev):
+ """ Python has no os.mknod, so we can only do some things """
+ if S_ISREG(mode):
+ open(path, "w")
+ else:
+ return -EINVAL
+
+ def mkdir(self, path, mode):
+ return os.mkdir(path, mode)
+
+ def utime(self, path, times):
+ return os.utime(path, times)
+
+ def open(self, path, flags):
+ os.close(os.open(path, flags))
+ return 0
+
+ def read(self, path, len, offset):
+ f = open(path, "r")
+ f.seek(offset)
+ return f.read(len)
+
+ def write(self, path, buf, off):
+ f = open(path, "r+")
+ f.seek(off)
+ f.write(buf)
+ return len(buf)
+
+if __name__ == '__main__':
+ server = Xmp()
+ server.flags = 0
+ server.multithreaded = 1;
+ server.main()