Imported Upstream version 1.7.0
[platform/upstream/augeas.git] / lenses / jettyrealm.aug
1 (*
2 Module: JettyRealm
3   JettyRealm Properties for Augeas
4
5 Author: Brian Redbeard <redbeard@dead-city.org>
6
7 About: Reference
8   This lens ensures that properties files for JettyRealms are properly
9   handled by Augeas.
10
11 About: License
12   This file is licensed under the LGPL License.
13
14 About: Lens Usage
15   Sample usage of this lens in augtool:
16
17     * Create a new user
18       > ins user  after /files/etc/activemq/jetty-realm.properties/user
19       > set /files/etc/activemq/jetty-realm.properties/user[last()]/username redbeard
20       > set /files/etc/activemq/jetty-realm.properties/user[last()]/password testing
21       > set /files/etc/activemq/jetty-realm.properties/user[last()]/realm admin
22       ...
23
24     * Delete the user named sample_user
25       > rm /files/etc/activemq/jetty-realm.properties/user[*][username = "sample_user"]
26
27   Saving your file:
28
29       > save
30
31 About: Configuration files
32   This lens applies to jetty-realm.properties files. See <filter>.
33 *)
34
35 module JettyRealm =
36         autoload xfm
37
38
39 (* View: comma_sep *)
40 let comma_sep = del /,[ \t]*/ ", "
41
42 (* View: realm_entry *)
43 let realm_entry = [ label "user" .
44                     [ label "username" . store Rx.word ] . del /[ \t]*:[ \t]*/ ": " .
45                     [ label "password" . store Rx.word ] . 
46                     [ label "realm" . comma_sep . store Rx.word ]* .
47                     Util.eol ]
48
49 (* View: lns *)
50 let lns = ( Util.comment | Util.empty | realm_entry )*
51
52
53 (* Variable: filter *)
54 let filter = incl "/etc/activemq/jetty-realm.properties"
55
56 let xfm = transform lns filter