[augeas-devel] augeas: master - Logrotate: make owner/group in create statement optional

David Lutterkort lutter at fedoraproject.org
Wed Jul 8 19:28:22 UTC 2009


Gitweb:        http://git.fedorahosted.org/git/augeas.git?p=augeas.git;a=commitdiff;h=060496603fedb966ab7ac51e3effe02e6a578332
Commit:        060496603fedb966ab7ac51e3effe02e6a578332
Parent:        2f47864aa15f389d3a1079284a5280171ef1890b
Author:        David Lutterkort <lutter at redhat.com>
AuthorDate:    Wed Jul 8 12:14:53 2009 -0700
Committer:     David Lutterkort <lutter at redhat.com>
CommitterDate: Wed Jul 8 12:14:53 2009 -0700

Logrotate: make owner/group in create statement optional

  * lenses/logrotate.aug (create): make mode/owner/group optional
  * lenses/test/test_logrotate.aug: add tests

Fixes part of bug #67 reported by Micah
---
 lenses/logrotate.aug            |   10 ++++++----
 lenses/tests/test_logrotate.aug |   12 ++++++++++++
 2 files changed, 18 insertions(+), 4 deletions(-)

diff --git a/lenses/logrotate.aug b/lenses/logrotate.aug
index 6663cde..55d3016 100644
--- a/lenses/logrotate.aug
+++ b/lenses/logrotate.aug
@@ -37,10 +37,12 @@ module Logrotate =
 
    (* Defaults *)
 
-   let create (indent:string ) = [ del /[ \t]*/ indent . key "create" .
-                       ( sep_spc . [ label "mode" . store num ] . sep_spc .
-		       [ label "owner" . store word ] . sep_spc .
-		       [ label "group" . store word ])?
+   let create (indent:string ) =
+     let mode = sep_spc . [ label "mode" . store num ] in
+     let owner = sep_spc . [ label "owner" . store word ] in
+     let group = sep_spc . [ label "group" . store word ] in
+     [ del /[ \t]*/ indent . key "create" .
+         ( mode | mode . owner | mode . owner . group )?
 		    . eol ]
 
    let tabooext (indent:string) = [ del /[ \t]*/ indent . key "tabooext" . ( sep_spc . store /\+/ )? . list_item+ . eol ]
diff --git a/lenses/tests/test_logrotate.aug b/lenses/tests/test_logrotate.aug
index c8cfefc..4c72318 100644
--- a/lenses/tests/test_logrotate.aug
+++ b/lenses/tests/test_logrotate.aug
@@ -144,6 +144,18 @@ include /etc/logrotate.d
          { "file" = "/file" }
          { "size" = "5M" } }
 
+  (* Can leave owner/group off a create statement *)
+  test Logrotate.lns get "/file {
+	create 600\n}\n" =
+     { "rule"
+         { "file" = "/file" }
+         { "create"
+             { "mode" = "600" } } }
+
+  test Logrotate.lns put "/file {\n	create 600\n}\n" after
+    set "/rule/create/owner" "user"
+  = "/file {\n	create 600 user\n}\n"
+
   (* The newline at the end of a script is optional *)
   test Logrotate.lns put "/file {\n size=5M\n}\n" after
     set "/rule/prerotate" "\tfoobar"




More information about the augeas-devel mailing list