From: Alexandros S. <al...@gm...> - 2008-08-19 18:13:38
|
Hi all, This is a progress update for the Tcl-Fuse project (https://sourceforge.net/projects/tcl-fuse). SINCE LAST UPDATE: * FUSE events are now served by Tcl's event loop. * Implemented the "version" subcommand of the "fuse" command, which returns the version of the underlying FUSE subsystem. * Created a Tcl cleanup procedure to automatically erase state and unmount any mounted FUSE file systems when the command is deleted. * Created a comprehensive man page, which includes API documentation for FUSE operation handlers. * Released version 1.0 of this software. * Created a home page for the project at sourceforge (which is the html-generated man page). * Fixed some bugs and various spelling errors. At this state of the project, I consider it completed. I will continue maintaining it though. Therefore, if there are any comments, bugs or remarks please speak out, and I will take a look at it. THE TOTAL DELIVERABLES OF THIS SOC PROJECT (IN BRIEF): 1. A Tcl C extension packed in the standard TEA format, that exposes the full functionality (read & write) of the underlying FUSE subsystem to Tcl. (2413 lines of code) 2. Full user documentation, in the form of a man page. (1169 lines) 3. Thorough testing of the extension, by implementing two use cases: * A "hello" filesystem, identical to the one in FUSE's sources, used for demonstration purposes. (74 lines of code) * The FuseVfs filesystem which exports Tcl's internal filesystem view via FUSE, for other processes to take advantage of. (1085 lines of code - most of them comments) TO FETCH Download the latest version from sourceforge. or svn checkout https://tcl-fuse.svn.sourceforge.net/svnroot/tcl-fuse TO COMPILE On 32bit: autoconf ./configure make sudo make install On 64bit systems: autoconf PKG_CFLAGS="-D_FILE_OFFSET_BITS=64" \ ./configure --with-tcl=/usr/lib64 make sudo make install Detailed instructions in README.tclfuse. REQUIREMENTS: * Kernel with FUSE enabled (CONFIG_FUSE_FS) * Tcl 8.4 or greater * The user mounting a fuse filesystem must be in the "fuse" group (name depends on the distro). TO TRY IT OUT: To mount the "hello" filesystem: cd <root of source code tree> tclsh examples/hello.tcl To mount the FuseVFS filesystem that maps the root of Tcl's VFS: cd <root of source code tree> tclsh examples/test_fusevfs.tcl In both cases the examples/mnt directory is where the filesystems will get mounted. Regards, Alexandros |