Config::Model::FuseUI - Fuse virtual file interface for Config::Model
# command line
mkdir mydir
cme fusefs popcon -fuse-dir mydir
ll mydir
fusermount -u mydir
# programmatic
use Config::Model ;
use Config::Model::FuseUI ;
my $model = Config::Model -> new;
my $root = $model -> instance (root_class_name => "PopCon") -> config_root ;
my $ui = Config::Model::FuseUI->new( root => $root, mountpoint => "mydir" );
$ui -> run_loop ; # blocking call
# explore mydir in another terminal then umount mydir directory
This module provides a virtual file system interface for you configuration data.
Each possible parameter of your configuration file is mapped to a file.
$ cme fusefs popcon -fuse-dir fused
Mounting config on fused in background.
Use command 'fusermount -u fused' to unmount
$ ll fused
total 4
-rw-r--r-- 1 domi domi 1 Dec 8 19:27 DAY
-rw-r--r-- 1 domi domi 0 Dec 8 19:27 HTTP_PROXY
-rw-r--r-- 1 domi domi 0 Dec 8 19:27 MAILFROM
-rw-r--r-- 1 domi domi 0 Dec 8 19:27 MAILTO
-rw-r--r-- 1 domi domi 32 Dec 8 19:27 MY_HOSTID
-rw-r--r-- 1 domi domi 3 Dec 8 19:27 PARTICIPATE
-rw-r--r-- 1 domi domi 0 Dec 8 19:27 SUBMITURLS
-rw-r--r-- 1 domi domi 3 Dec 8 19:27 USEHTTP
$ fusermount -u fuse_dir
- For some configuration, mapping each parameter to a file may lead to a
high number of files.
- The content of a file is when writing a wrong value. I.e. the files is
empty and the old value is lost.
parameters are:
- model
- Config::Model object
- root
- Root of the configuration tree
("Config::Model::Node" object )
- mountpoint
Parameters: "( fork_in_loop => 1|0, debug => 1|0
)"
Mount the file system either in the current process or fork a new
process before mounting the file system. In the former case, the call is
blocking. In the latter case, the call returns after forking a process that
performs the mount. Debug parameter is passed to Fuse system to get traces
from Fuse.
Mount the fuse file system. This method blocks until the file system is
unmounted (with "fusermount -u mount_point"
command)
This software is Copyright (c) 2005-2022 by Dominique Dumont.
This is free software, licensed under:
The GNU Lesser General Public License, Version 2.1, February 1999