[augeas-devel] [PATCH 2/2] Modules_conf: new lens for modules.conf and conf.modules
Matthew Booth
mbooth at redhat.com
Thu May 13 09:03:34 UTC 2010
---
lenses/modules_conf.aug | 42 ++++++++++++++++
lenses/tests/test_modules_conf.aug | 96 ++++++++++++++++++++++++++++++++++++
tests/Makefile.am | 1 +
3 files changed, 139 insertions(+), 0 deletions(-)
create mode 100644 lenses/modules_conf.aug
create mode 100644 lenses/tests/test_modules_conf.aug
diff --git a/lenses/modules_conf.aug b/lenses/modules_conf.aug
new file mode 100644
index 0000000..5245e5f
--- /dev/null
+++ b/lenses/modules_conf.aug
@@ -0,0 +1,42 @@
+(*
+Module: Modules_conf
+ Parses /etc/modules.conf and /etc/conf.modules
+
+ Based on the similar Modprobe lens
+
+ Not all directives currently listed in modules.conf(5) are currently
+ supported.
+*)
+module Modules_conf =
+autoload xfm
+
+let comment = Util.comment
+let empty = Util.empty
+let eol = Util.eol | Util.comment
+
+(* Basic file structure is the same as modprobe.conf *)
+let cmd (n:regexp) = Modprobe.cmd n
+let token_to_eol = Modprobe.token_to_eol
+
+let path = [ key "path" . del "=" "=" . token_to_eol . eol ]
+let keep = [ key "keep" . eol ]
+let probeall = [ cmd "probeall" . token_to_eol . eol ]
+
+let entry =
+ Modprobe.alias
+ | Modprobe.options
+ | Modprobe.include
+ | Modprobe.cmd_token_to_eol /install|pre-install|post-install/
+ | Modprobe.cmd_token_to_eol /remove|pre-remove|post-remove/
+ | keep
+ | path
+ | probeall
+
+
+let lns = (comment|empty|entry)*
+
+let filter = (incl "/etc/modules.conf") .
+ (incl "/etc/conf.modules").
+ Util.stdexcl
+
+let xfm = transform lns filter
diff --git a/lenses/tests/test_modules_conf.aug b/lenses/tests/test_modules_conf.aug
new file mode 100644
index 0000000..31e72b6
--- /dev/null
+++ b/lenses/tests/test_modules_conf.aug
@@ -0,0 +1,96 @@
+module Test_modules_conf =
+
+(* Based on 04config.sh from module-init-tools *)
+
+let conf = "# Various aliases
+alias alias_to_foo foo
+alias alias_to_bar bar
+alias alias_to_export_dep-$BITNESS export_dep-$BITNESS
+
+# Various options, including options to aliases.
+options alias_to_export_dep-$BITNESS I am alias to export_dep
+options alias_to_noexport_nodep-$BITNESS_with_tabbed_options index=0 id=\"Thinkpad\" isapnp=0 \\
+\tport=0x530 cport=0x538 fm_port=0x388 \\
+\tmpu_port=-1 mpu_irq=-1 \\
+\tirq=9 dma1=1 dma2=3 \\
+\tenable=1 isapnp=0
+
+# Install commands
+install bar echo Installing bar
+install foo echo Installing foo
+install export_nodep-$BITNESS echo Installing export_nodep
+
+# Pre- and post- install something
+pre-install ide-scsi modprobe ide-cd # load ide-cd before ide-scsi
+post-install serial /etc/init.d/setserial modload > /dev/null 2> /dev/null
+
+# Remove commands
+remove bar echo Removing bar
+remove foo echo Removing foo
+remove export_nodep-$BITNESS echo Removing export_nodep
+
+#Pre- and post- remove something
+pre-remove serial /etc/init.d/setserial modsave > /dev/null 2> /dev/null
+post-remove bttv rmmod tuner
+
+# Misc other directives
+probeall /dev/cdroms
+keep
+path=/lib/modules/`uname -r`/alsa
+"
+
+test Modules_conf.lns get conf =
+ { "#comment" = "Various aliases" }
+ { "alias" = "alias_to_foo"
+ { "modulename" = "foo" } }
+ { "alias" = "alias_to_bar"
+ { "modulename" = "bar" } }
+ { "alias" = "alias_to_export_dep-$BITNESS"
+ { "modulename" = "export_dep-$BITNESS" } }
+ { }
+ { "#comment" = "Various options, including options to aliases." }
+ { "options" = "alias_to_export_dep-$BITNESS"
+ { "I" }
+ { "am" }
+ { "alias" }
+ { "to" }
+ { "export_dep" } }
+ { "options" = "alias_to_noexport_nodep-$BITNESS_with_tabbed_options"
+ { "index" = "0" }
+ { "id" = "\"Thinkpad\"" }
+ { "isapnp" = "0" }
+ { "port" = "0x530" }
+ { "cport" = "0x538" }
+ { "fm_port" = "0x388" }
+ { "mpu_port" = "-1" }
+ { "mpu_irq" = "-1" }
+ { "irq" = "9" }
+ { "dma1" = "1" }
+ { "dma2" = "3" }
+ { "enable" = "1" }
+ { "isapnp" = "0" } }
+ { }
+ { "#comment" = "Install commands" }
+ { "install" = "bar echo Installing bar" }
+ { "install" = "foo echo Installing foo" }
+ { "install" = "export_nodep-$BITNESS echo Installing export_nodep" }
+ { }
+ { "#comment" = "Pre- and post- install something" }
+ { "pre-install" = "ide-scsi modprobe ide-cd"
+ { "#comment" = "load ide-cd before ide-scsi" }
+ }
+ { "post-install" = "serial /etc/init.d/setserial modload > /dev/null 2> /dev/null" }
+ { }
+ { "#comment" = "Remove commands" }
+ { "remove" = "bar echo Removing bar" }
+ { "remove" = "foo echo Removing foo" }
+ { "remove" = "export_nodep-$BITNESS echo Removing export_nodep" }
+ { }
+ { "#comment" = "Pre- and post- remove something" }
+ { "pre-remove" = "serial /etc/init.d/setserial modsave > /dev/null 2> /dev/null" }
+ { "post-remove" = "bttv rmmod tuner" }
+ { }
+ { "#comment" = "Misc other directives" }
+ { "probeall" = "/dev/cdroms" }
+ { "keep" }
+ { "path" = "/lib/modules/`uname -r`/alsa" }
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 3375ee9..371fe0a 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -45,6 +45,7 @@ lens_tests = \
lens-logrotate.sh \
lens-lokkit.sh \
lens-modprobe.sh \
+ lens-modules_conf.sh \
lens-monit.sh \
lens-multipath.sh \
lens-nagioscfg.sh \
--
1.6.6.1
More information about the augeas-devel
mailing list