.::lib::Fuse::Template(U3s)er Contributed Perl Documentat.i:o:nlib::Fuse::Template(3) NNAAMMEE Fuse::Template - Mount a directory with templates. VVEERRSSIIOONN 0.01 UUSSAAGGEE "sudo" might be optional. MMOOUUNNTT Example SQLite: $ sudo fuse-template --root /path/to/templates \ --mountpoint /path/to/mountpoint \ --schema dbi:SQLite:path/to/db \ ; Example MySQL: $ sudo fuse-template --root /path/to/templates \ --mountpoint /path/to/mountpoint \ --schema "dbi:mysql:database=MyDB;host=127.1;port=3006 user pass" \ ; See DBI for possible "--schema" formats. UUNNMMOOUUNNTT This needs to be done manually for now. (Patches are welcome!) sudo umount /path/to/mountpoint; DDEESSCCRRIIPPTTIIOONN The idea with this project is to auto-maintain password files, and other plain text files for different systems, with data from a database. Got issues with installation? See "INSTALL" for details and list of prerequisite. See "examples/" in this distribution for templates. Example file system structure: root/ -> mountpooit/ root/somefile -> mountpoint/somefile root/foo.tt -> mountpoint/foo root/bar/baz.txt.tt -> mountpoint/bar/baz.txt "somefile" is accessible directly at "mountpoint". Template files (.tt) are parsed and the output is accessible on mountpoint side. This is done using Template::Toolkit. Files in mountpoint are read-only for now. TTEEMMPPLLAATTEESS Here is an example template: root = [% self.root %] [% rs = schema.resultset('MyTable') %] [% rs = MyTable; # same as schema.resultset(...) %] [% WHILE (row = rs.next) # get next row in resultset %] col_name = [% row.col_name # retrieve column data %] [% END %] See DBIx::Class for information on how to use the schema object. Available variables: root mountpoint mountopts self # this object schema # DBIx::Class object + all resultsetset/tables Resultset use this naming convention to convert tablenames: Table Name | Moniker Name --------------------------- luser | Luser luser_group | LuserGroup luser-opts | LuserOpts See "moniker_map" in DBIx::Class::Schema::Loader for details AATTTTRRIIBBUUTTEESS rroooott $object = $self->root; $object must be stringified to path where templates/files are located. $object must follow the same API as Fuse::Template::Root. Can be set in constructor as: root => \%constructor_args root => $path_to_root %constructor_args can override defaults, while $path_to_root will only override "path" attribute in root-object. mmoouunnttppooiinntt $path = $self->mountpoint; Path to where the filesystem should be mounted. mmoouunnttooppttss $str = $self->mountopts; Example mount option: "allow_other" sscchheemmaa $dbic_object = $self->schema; Can be set in constructor as: schema => \%args schema => "$dsn $username $password" See Fuse::Template::Schema for details. ddeebbuugg $bool = $self->debug; Enable/disable debug output from Fuse. Default is disabled. MMEETTHHOODDSS ffiinndd__ffiillee $real_path = $self->find_file($virtual_path); Returns path to the file in root path. lloogg $bool = $self->log($level => $format => @args); AAUUTTHHOORR Jan Henning Thorsen LLIICCEENNSSEE This library is free software, you can redistribute it and/or modify it under the same terms as Perl itself. perl v5.10.0 2009-07-27 .::lib::Fuse::Template(3)