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

FreeBSD Manual Pages

  
 
  

home | help
Config::Model::SimpleUUser Contributed Perl DocumentConfig::Model::SimpleUI(3)

NAME
       Config::Model::SimpleUI - Simple	interface for Config::Model

VERSION
       version 2.140

SYNOPSIS
	use Config::Model;
	use Config::Model::SimpleUI ;

	# define configuration tree object
	my $model = Config::Model->new;
	 $model->create_config_class(
	   name	   => "Foo",
	   element => [
	       [qw/foo bar/] =>	{
		   type	      => 'leaf',
		   value_type => 'string'
	       },
	   ]
	);
	$model ->create_config_class (
	   name	=> "MyClass",

	   element => [

	       [qw/foo bar/] =>	{
		   type	      => 'leaf',
		   value_type => 'string'
	       },
	       hash_of_nodes =>	{
		   type	      => 'hash',     # hash id
		   index_type => 'string',
		   cargo      => {
		       type		 => 'node',
		       config_class_name => 'Foo'
		   },
	       },
	   ],
	) ;

	my $inst = $model->instance(root_class_name => 'MyClass' );

	my $root = $inst->config_root ;

	# put data
	my $steps = 'foo=FOO hash_of_nodes:fr foo=bonjour -
	  hash_of_nodes:en foo=hello ';
	$root->load( steps => $steps );

	my $ui = Config::Model::SimpleUI->new(
	   root	=> $root ,
	   title => 'My	class ui',
	   prompt => 'class ui',
	);

	# engage in user interaction
	$ui -> run_loop	;

	print $root->dump_tree ;

       Once the	synopsis above has been	saved in "my_test.pl", you can do:

	$ perl my_test.pl
	class ui:$ ls
	foo  bar  hash_of_nodes
	class ui:$ ll hash_of_nodes
	name	     value	  type	       comment
	hash_of_nodes <Foo>	   node	hash	keys: "en" "fr"

	class ui:$ cd hash_of_nodes:en

	class ui: hash_of_nodes:en $ ll
	name	     value	  type	       comment
	foo	     hello	  string
	bar	     [undef]	  string

	class ui: hash_of_nodes:en $ set bar=bonjour

	class ui: hash_of_nodes:en $  ll
	name	     value	  type	       comment
	foo	     hello	  string
	bar	     bonjour	  string

	class ui: hash_of_nodes:en $ ^D

       At the end, the test script dumps the configuration tree. The modified
       "bar" value can be found	in there:

	foo=FOO
	hash_of_nodes:en
	  foo=hello
	  bar=bonjour -
	hash_of_nodes:fr
	  foo=bonjour -	-

DESCRIPTION
       This module provides a pure ASCII user interface	using STDIN and
       STDOUT.

USER COMMAND SYNTAX
       cd ...
	   Jump	into node or value element. You	can use	"cd <element>",	"cd
	   <elt:key>" or "cd -"	to go up one node or "cd !"  to	go to
	   configuration root.

       set elt=value
	   Set a leaf value.

       set elt:key=value
	   Set a leaf value locate in a	hash or	list element.

       clear elt
	   Clear leaf value (set to "undef") or	removed	all elements of	hash
	   or list.

       delete elt
	   Delete leaf value.

       delete elt:key
	   Delete a list or hash element

       display node_name elt:key
	   Display a value

       ls [path] [ pattern ]
	   Show	elements of current node or of a node pointed by path.
	   Elements can	be filtered with a shell pattern. See inline help for
	   more	details.

       ll [-nz]	[-v] [ pattern ... ]
	   Describe elements of	current	node. Can be used with shell patterns
	   or element names.  Skip empty element with "-nz" option. Display
	   more	information with "-v" option

       tree [path]
	   Show	configuration tree from	current	node or	of a node pointed by
	   path.

       info [path]
	   Show	debug information on current node or on	the element pointed by
	   path. The debug information may show	model parametersm default or
	   computed values.

       help
	   Show	available commands.

       desc[ription]
	   Show	class description of current node.

       desc(elt)
	   Show	description of element from current node.

       desc(value)
	   Show	effect of value	(for enum)

       changes
	   Show	unsaved	changes

       check
	   Without parameter, show warnings starting from current node.	With
	   an element name as parameter, do the	same on	the element.

       fix Try to fix warning starting from current node. With an element name
	   as parameter, do the	same on	the element. With ""!""	as parameter,
	   try to fix warnings starting	from root node by calling apply_fixes
	   there.

       exit
	   Exit	shell

CONSTRUCTOR
   parameters
       root
	   Root	node of	the configuration tree

       title
	   UI title

       prompt
	   UI prompt. The prompt will be completed with	the location of	the
	   current node.

Methods
   run_loop
       Engage in user interaction until	user enters '^D' (CTRL-D).

AUTHOR
       Dominique Dumont, (ddumont at cpan dot org)

SEE ALSO
       Config::Model, Config::Model::Instance, Config::Model::Node,

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-28	    Config::Model::SimpleUI(3)

NAME | VERSION | SYNOPSIS | DESCRIPTION | USER COMMAND SYNTAX | CONSTRUCTOR | 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::SimpleUI&sektion=3&manpath=FreeBSD+12.2-RELEASE+and+Ports>

home | help