Gitweb: http://git.fedorahosted.org/git/augeas.git?p=augeas.git;a=commitdiff;h=542f16d63466d8ba52e84db25220aa84d42c5df0 Commit: 542f16d63466d8ba52e84db25220aa84d42c5df0 Parent: d075fc3c19f8eacbafc0af3bef5c3e2b3f8e46d3 Author: Ivana Hutarova Varekova <[email protected]> AuthorDate: Fri Feb 12 17:49:36 2010 -0800 Committer: David Lutterkort <[email protected]> CommitterDate: Fri Feb 12 17:49:36 2010 -0800
Cgrules: new lens and test See cgrules.conf for http://libcg.sourceforge.net/ --- doc/naturaldocs/conf/lenses/Menu.txt | 1 + lenses/cgrules.aug | 85 ++++++++++++++++++++++++++++++++++ lenses/tests/test_cgrules.aug | 32 +++++++++++++ tests/Makefile.am | 3 +- 4 files changed, 120 insertions(+), 1 deletions(-) diff --git a/doc/naturaldocs/conf/lenses/Menu.txt b/doc/naturaldocs/conf/lenses/Menu.txt index ea2d7b7..f8a5fbf 100644 --- a/doc/naturaldocs/conf/lenses/Menu.txt +++ b/doc/naturaldocs/conf/lenses/Menu.txt @@ -55,6 +55,7 @@ Group: Specific Modules { File: Build (build.aug) File: cgconfig (cgconfig.aug) + File: cgrules (cgrules.aug) File: Cron (cron.aug) File: Dpkg (dpkg.aug) File: Exports (exports.aug) diff --git a/lenses/cgrules.aug b/lenses/cgrules.aug new file mode 100644 index 0000000..e763bed --- /dev/null +++ b/lenses/cgrules.aug @@ -0,0 +1,85 @@ +(* +Module: cgrules + Parses /etc/cgrules.conf + +Author: + Raphael Pinson <[email protected]> + Ivana Hutarova Varekova <[email protected]> + +About: Licence + This file is licensed under the LGPLv2+, like the rest of Augeas. + +About: Lens Usage + Sample usage of this lens in augtool: + +About: Configuration files + This lens applies to /etc/cgconfig.conf. See <filter>. + *) + +module Cgrules = + autoload xfm + +(************************************************************************ + * Group: USEFUL PRIMITIVES + *************************************************************************) + +(* Group: Separators *) +(* Variable: ws *) + let ws = del /[ \t]+/ " " + +(* Group: Comments and empty lines *) +(* Variable: eol *) + let eol = Util.eol + +(* Variable: comment *) + let comment = Util.comment + +(* Variable: empty *) + let empty = Util.empty + +(* Group: Generic primitive definitions *) +(* Variable: name *) + let name = /[...@%\# \t\n][^ \t\n]*/ +(* Variable: ctrl_key *) + let ctrl_key = /[^ \t\n\/]+/ +(* Variable: ctrl_value *) + let ctrl_value = /[^ \t\n]+/ + +(************************************************************************ + * Group: CONTROLLER + *************************************************************************) + +(* Variable: controller *) +let controller = ws . [ key ctrl_key . ws . store ctrl_value ] + +let more_controller = Util.del_str "%" . controller . eol + +(************************************************************************ + * Group: RECORDS + *************************************************************************) + +let generic_record (lbl:string) (lns:lens) = + [ label lbl . lns + . controller . eol + . more_controller* ] + +(* Variable: user_record *) +let user_record = generic_record "user" (store name) + +(* Variable: group_record *) +let group_record = generic_record "group" (Util.del_str "@" . store name) + +(************************************************************************ + * Group: LENS & FILTER + *************************************************************************) + +(* View: lns + The main lens, any amount of + * <empty> lines + * <comment> + * <user_record> + * <group_record> +*) +let lns = ( empty | comment | user_record | group_record )* + +let xfm = transform lns (incl "/etc/cgrules.conf") diff --git a/lenses/tests/test_cgrules.aug b/lenses/tests/test_cgrules.aug new file mode 100644 index 0000000..3e29d4f --- /dev/null +++ b/lenses/tests/test_cgrules.aug @@ -0,0 +1,32 @@ +module Test_cgrules = + +let conf="#cgrules test configuration file +poooeter cpu test1/ +% memory test2/ +...@somegroup cpu toto/ +% devices toto1/ +% memory toto3/ +" +test Cgrules.lns get conf = + { "#comment" = "cgrules test configuration file" } + { "user" = "poooeter" + { "cpu" = "test1/" } + { "memory" = "test2/" } } + { "group" = "somegroup" + { "cpu" = "toto/" } + { "devices" = "toto1/" } + { "memory" = "toto3/" } } + +test Cgrules.lns put conf after + set "user/cpu" "test3/"; + rm "user/memory"; + rm "group"; + insa "devices" "user/*[last()]"; + set "user/devices" "newtest/"; + insb "memory" "user/devices"; + set "user/memory" "memtest/" += "#cgrules test configuration file +poooeter cpu test3/ +% memory memtest/ +% devices newtest/ +" diff --git a/tests/Makefile.am b/tests/Makefile.am index c74b9e6..2ed23e4 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -15,7 +15,8 @@ lens_tests = \ lens-aptpreferences.sh \ lens-aptsource.sh \ lens-bbhosts.sh \ - lens-cgconfig.sh \ + lens-cgconfig.sh \ + lens-cgrules.sh \ lens-cobblersettings.sh \ lens-cobblermodules.sh \ lens-cron.sh \ _______________________________________________ augeas-devel mailing list [email protected] https://www.redhat.com/mailman/listinfo/augeas-devel
