Miguel's ReflectionFS - Jonathan Pryor's web log
« Mono.Fuse, Take 2! | Main | Mono.Fuse 0.3.0 »
Miguel's ReflectionFS
After the Mono.Fuse 0.2.1 release, Miguel de Icaza wrote a small Mono.Fuse program that exposed System.Reflection information as a filesystem.
With the Mono.Fuse 0.3.0 release, this sample no longer works, as the Mono.Fuse API changed. Thus, here is an updated version of the sample:
$ cp `pkg-config --variable=Libraries mono-fuse` . $ gmcs ReflectionFS.cs -r:Mono.Fuse.dll -r:Mono.Posix.dll $ mkdir t $ mono ReflectionFS.exe t & $ ls t/mscorlib/System.Diagnostics.ConditionalAttribute ConditionString GetType ToString Equals get_TypeId TypeId get_ConditionString IsDefaultAttribute GetHashCode Match $ fusermount -u t
Note that the above requires that PKG_CONFIG_PATH contain a directory with the mono-fuse.pc file (created during Mono.Fuse installation), and that libMonoFuseHelper.so should be in LD_LIBRARY_PATH or a directory listed in /etc/ld.so.conf.
Mono.Fuse also contains other sample programs. In particular, RedirectFS-FH.cs is a straightforward port of FUSE's fusexmp_fh.c sample program, and shows a way to "redirect" a new mountpoint to display the contents of another existing directory. RedirectFS-FH.cs is actually an improvement, as fusexmp_fh.c just shows the contents of the / directory at any new mount point, while RedirectFS-FH can redirect to any other directory.
blog comments powered by Disqus