Since /etc/sysconfig/nfs comments out all settings this lens allows for 
specified settings to be altered and uncommented. This also has the ability to 
recomment a setting.

For example,

#MOUNTD_PORT=682

augtool> rm /files/etc/sysconfig/nfs/MOUNTD_PORT/commented

will become

MOUNTD_PORT=682

Recommenting is just as simple

augtool> clear /files/etc/sysconfig/nfs/MOUNTD_PORT/commented

Finally setting

augtool> set /files/etc/sysconfig/nfs/MOUNTD_PORT 5500

Cool thing about the set functionality is it will leave the setting in its 
current commented/uncommented state.

Thanks to David for all his help on getting this setup and some of this 
functionality will make its way back into shellvars for the rest of the 
sysconfig scripts to use.

I am hoping to utilize all of this and the pure python library for augeas to 
re-work system-config-nfs and more of the system-config* down the road.

thanks

-- 
        __          __                
.-----.|  |_.-----.|  |--.-----.-----.
|__ --||   _|  _  ||    <|  -__|__ --|
|_____||____|_____||__|__|_____|_____|
 .----------------------------------.
(   [email protected] || 919.754.4187   )
 `----------------------------------'

--- nfsserver.aug	2010-01-06 21:34:53.434440924 -0500
+++ nfsserver.aug.stokes	2010-01-06 16:18:23.238468680 -0500
@@ -0,0 +1,54 @@
+(* /etc/sysconfig/nfs - nfs server settings *)
+
+module NFSserver =
+    autoload xfm
+   
+    let eol             = del /[ \t]*\n/ "\n"
+    let value_sep       = del /[ \t]*=[ \t]*/  " = "
+    let indent          = del /[ \t]*/ ""
+    let empty           = [ label "#empty" . eol ]
+    
+    let comment         =
+        let settings    = /RQUOTAD_PORT|LOCKD_TCPPORT|LOCKD_UDPPORT|MOUNTD_PORT|STATD_PORT/ in
+        let line_re     = /([^ \t\n][^\n]*)?/ - (settings . /[ \t]*=[ \t]*.*/) in
+        [ label "#comment" . del /#[ \t]*/ "# " . store line_re . del /\n/ "\n" ]
+
+    let int_val         = store /[0-9]+/
+    
+    let int_entry (kw:string) = 
+        let marker = [ del /#[ \t]*/ "# " . label "commented" ] in
+        [ marker? . key kw . value_sep . int_val ]
+    
+    let mountd_entry    = int_entry "MOUNTD_PORT"
+    let lockd_entry     = int_entry "LOCKD_TCPPORT"
+                        | int_entry "LOCKD_UDPPORT"
+    let statd_entry     = int_entry "STATD_PORT"
+    let rquotad_entry   = int_entry "RQUOTAD_PORT"
+    
+    let entry           = mountd_entry
+                        | lockd_entry
+                        | statd_entry
+                        | rquotad_entry
+    
+    let record          = indent . entry . eol
+    
+    let lns             = ( record | comment | empty ) *
+
+    let filter          = incl "/etc/sysconfig/nfs"
+                        . Util.stdexcl
+              
+    let xfm             = transform lns filter
+
+(* /etc/sysconfig/nfs test runs *)
+
+    test lns get "MOUNTD_PORT=892\n" = { "MOUNTD_PORT" = "892" }
+    
+    test lns get "# MOUNTD_PORT=892\n" =
+      { "MOUNTD_PORT" = "892"
+          { "commented" } }
+    
+    test lns put "MOUNTD_PORT=892\n" after clear "/MOUNTD_PORT/commented" =
+      "# MOUNTD_PORT=892\n"
+    
+    test lns put "# MOUNTD_PORT=892\n" after rm "/MOUNTD_PORT/commented" =
+      "MOUNTD_PORT=892\n"
--- shellvars.aug.orig	2010-01-06 15:17:49.604496695 -0500
+++ shellvars.aug	2010-01-06 15:18:02.609514219 -0500
@@ -72,7 +72,6 @@
       sc_incl "nasd" .
       sc_incl "netconsole" .
       sc_incl "network" .
-      sc_incl "nfs" .
       sc_incl "ntpd" .
       sc_incl "prelink" .
       sc_incl "readonly-root" .
_______________________________________________
augeas-devel mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/augeas-devel

Reply via email to