Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
Config::Model::BackendUseraContributed PerConfig::Model::Backend::PlainFile(3)

NAME
       Config::Model::Backend::PlainFile - Read	and write config as plain file

VERSION
       version 2.140

SYNOPSIS
	use Config::Model;

	my $model = Config::Model->new;

	my $inst = $model->create_config_class(
	   name	=> "WithPlainFile",
	   element => [
	       [qw/source new/]	=> { qw/type leaf value_type uniline/ },
	   ],
	   rw_config  => {
	     backend =>	'plain_file',
	     config_dir	=> '/tmp',
	   },
	);

	my $inst = $model->instance(root_class_name => 'WithPlainFile' );
	my $root = $inst->config_root ;

	$root->load('source=foo	new=yes' );

	$inst->write_back ;

       Now "/tmp" directory contains 2 files: "source" and "new" with "foo"
       and "yes" inside.

DESCRIPTION
       This module is used directly by Config::Model to	read or	write the
       content of a configuration tree written in several files.  Each element
       of the node is written in a plain file.

Element	type and file mapping
       Element values are written in one or several files depending on their
       type.

       leaf
	   The leaf value is written in	one file. This file can	have several
	   lines if the	leaf type is "string"

       list
	   The list content is written in one file. Each line of the file is a
	   value of the	list.

       hash
	   Not supported

File mapping
       By default, the configuration file is named after the element name
       (like in	synopsis above).

       The "file" parameter can	also be	used to	specify	a file name that take
       into account the	path in	the tree using "&index()" and "&element()"
       functions from Config::Model::Role::ComputeFunction.

       For instance, with the following	model:

	   class_name => "Foo",
	   element => [
	       string_a	=> { type => 'leaf', value_type	=> 'string'}
	       string_b	=> { type => 'leaf', value_type	=> 'string'}
	   ],
	   rw_config =>	{
	       backend => 'PlainFile',
	       config_dir => 'foo',
	       file => '&element(-).&element',
	       file_mode => 0644,  # optional
	   }

       If the configuration is loaded with "example string_a=something
       string_b=else", this backend writes ""something"" in file
       "example.string_a" and "else" in	file "example.string_b".

       "file_mode" parameter can be used to set	the mode of the	written	file.
       "file_mode" value can be	in any form supported by "chmod" in
       Path::Tiny.

Methods
   read_leaf
       Parameters: "(obj, elt, check, file, args)"

       Called by read method to	read the file of a leaf	element. "args"
       contains	the arguments passed to	read method.

   read_hash (obj,elt,check,file,args);
       Like read_leaf for hash elements.

   read_list
       Parameters: "(obj, elt, check, file, args)"

       Like read_leaf for list elements.

   write
       "write" writes a	file for each element of the calling class. Works only
       for leaf	and list elements. Other element type are skipped. Always
       return 1	(unless	it died	before).

AUTHOR
       Dominique Dumont, (ddumont at cpan dot org)

SEE ALSO
       Config::Model, Config::Model::BackendMgr, Config::Model::Backend::Any,

AUTHOR
       Dominique Dumont

COPYRIGHT AND LICENSE
       This software is	Copyright (c) 2005-2020	by Dominique Dumont.

       This is free software, licensed under:

	 The GNU Lesser	General	Public License,	Version	2.1, February 1999

perl v5.32.0			  2020-08-Config::Model::Backend::PlainFile(3)

NAME | VERSION | SYNOPSIS | DESCRIPTION | Element type and file mapping | File mapping | Methods | AUTHOR | SEE ALSO | AUTHOR | COPYRIGHT AND LICENSE

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=Config::Model::Backend::PlainFile&sektion=3&manpath=FreeBSD+12.2-RELEASE+and+Ports>

home | help