[augeas-devel] [PATCH] Improve lens style & readability
Raphael Pinson
raphink at gmail.com
Wed Aug 27 06:57:52 UTC 2008
# HG changeset patch
# User Raphael Pinson <raphink at gmail.com>
# Date 1219820223 -7200
# Node ID 336f699f6bd2ac5eec007f9c4329b23e042847bb
# Parent dce2521115ff34ad35f06a60c3234dffc6b7be77
Improve lens style & readability
Fix filter
diff -r dce2521115ff -r 336f699f6bd2 lenses/openvpn.aug
--- a/lenses/openvpn.aug Tue Aug 26 15:06:55 2008 +0200
+++ b/lenses/openvpn.aug Wed Aug 27 08:57:03 2008 +0200
@@ -1,24 +1,37 @@
-(* Parsing /etc/openvpn/openvpn.conf *)
+(* OpenVPN module for Augeas
+ Author: Raphael Pinson <raphink at gmail.com>
+
+ Reference: http://openvpn.net/index.php/documentation/howto.html
+*)
+
module OpenVPN =
-autoload xfm
-
+ autoload xfm
+
+(************************************************************************
+ * USEFUL PRIMITIVES
+ *************************************************************************)
+
+let eol = Util.eol
+let indent = Util.indent
+
+(* Define separators *)
let sep = Util.del_ws_spc
let sep_dquote = Util.del_str "\""
-let eol = Util.eol
-let indent = Util.indent
-
+
+(* Define value regexps *)
let ip_re = /[0-9\.]+/
let num_re = /[0-9]+/
let fn_re = /[^#; \t\n][^#;\n]*[^#; \t\n]|[^#; \t\n]/
let an_re = /[a-z][a-z0-9_-]*/
+(* Define store aliases *)
let ip = store ip_re
let num = store num_re
let filename = store fn_re
-
let sto_to_dquote = store /[^"\n]+/
+(* define comments and empty lines *)
let comment = [ indent . label "#comment"
. del /[;#][ \t]*/ "# "
. store /([^ \t\n].*[^ \t\n]|[^ \t\n])/
@@ -27,30 +40,33 @@ let empty = Util.empty
let empty = Util.empty
-(* Single values
- - local => IP
- - port => num
- - proto => tcp|udp
- - dev => (tun|tap)\d*
- - dev-node => MyTap
- - ca => filename
- - cert => filename
- - key => filename
- - dh => filename
- - ifconfig-pool-persist => filename
- - learn-address => filename
- - cipher => [A-Z0-9-]+
- - max-clients => num
- - user => alphanum
- - group => alphanum
- - status => filename
- - log => filename
- - log-append => filename
- - verb => num
- - mute => num
- - ns-cert-type => "server"
- - resolv-retry => "infinite"
-*)
+(************************************************************************
+ * SINGLE VALUES
+ *
+ * - local => IP
+ * - port => num
+ * - proto => tcp|udp
+ * - dev => (tun|tap)\d*
+ * - dev-node => MyTap
+ * - ca => filename
+ * - cert => filename
+ * - key => filename
+ * - dh => filename
+ * - ifconfig-pool-persist => filename
+ * - learn-address => filename
+ * - cipher => [A-Z0-9-]+
+ * - max-clients => num
+ * - user => alphanum
+ * - group => alphanum
+ * - status => filename
+ * - log => filename
+ * - log-append => filename
+ * - verb => num
+ * - mute => num
+ * - ns-cert-type => "server"
+ * - resolv-retry => "infinite"
+ *************************************************************************)
+
let single_ip = "local"
let single_num = "port"
| "max-clients"
@@ -83,18 +99,21 @@ let single = single_entry single_num
| single_entry "ns-cert-type" "server"
| single_entry "resolv-retry" "infinite"
-(* Flags
- - client-to-client
- - duplicate-cn
- - comp-lzo
- - persist-key
- - persist-tun
- - client
- - remote-random
- - nobind
- - mute-replay-warnings
- - http-proxy-retry
-*)
+
+(************************************************************************
+ * FLAGS
+ *
+ * - client-to-client
+ * - duplicate-cn
+ * - comp-lzo
+ * - persist-key
+ * - persist-tun
+ * - client
+ * - remote-random
+ * - nobind
+ * - mute-replay-warnings
+ * - http-proxy-retry
+ *************************************************************************)
let flag_words = "client-to-client"
| "duplicate-cn"
@@ -113,14 +132,16 @@ let flag = flag_entry flag_words
let flag = flag_entry flag_words
-(* Others
- - server => IP IP
- - server-bridge => IP IP IP IP
- - push => "string"
- - keepalive => num num
- - tls-auth => filename [01]
- - remote => hostname/IP num
-*)
+(************************************************************************
+ * OTHER FIELDS
+ *
+ * - server => IP IP
+ * - server-bridge => IP IP IP IP
+ * - push => "string"
+ * - keepalive => num num
+ * - tls-auth => filename [01]
+ * - remote => hostname/IP num
+ *************************************************************************)
let server = [ key "server" . sep
. [ label "address" . ip ] . sep
@@ -171,14 +192,16 @@ let other = server
| http_proxy
-(* Define lens *)
-
-let lns = (comment|empty|single|flag|other)*
-
-let xfm = transform lns (incl "/etc/openvpn/openvpn.conf")
-
-(* Local Variables: *)
-(* mode: caml *)
-(* End: *)
-
-
+(************************************************************************
+ * LENS & FILTER
+ *************************************************************************)
+
+let lns = ( comment | empty | single | flag | other )*
+
+let filter = (incl "/etc/openvpn/client.conf")
+ . (incl "/etc/openvpn/server.conf")
+
+let xfm = transform lns filter
+
+
+
diff -r dce2521115ff -r 336f699f6bd2 lenses/tests/test_openvpn.aug
--- a/lenses/tests/test_openvpn.aug Tue Aug 26 15:06:55 2008 +0200
+++ b/lenses/tests/test_openvpn.aug Wed Aug 27 08:57:03 2008 +0200
@@ -141,3 +141,5 @@ test OpenVPN.lns get client_conf =
{ "http-proxy" }
{ "mute-replay-warnings" }
{ "ns-cert-type" = "server" }
+
+
More information about the augeas-devel
mailing list