/usr/share/augeas/lenses/dist/resolv.aug is in augeas-lenses 1.4.0-0ubuntu1.1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 | (*
Module: Resolv
Parses /etc/resolv.conf
Author: Raphael Pinson <raphink@gmail.com>
About: Reference
This lens tries to keep as close as possible to `man resolv.conf` where possible.
About: Licence
This file is licensed under the LGPL v2+, like the rest of Augeas.
About: Lens Usage
About: Configuration files
This lens applies to /etc/resolv.conf. See <filter>.
*)
module Resolv =
autoload xfm
(************************************************************************
* Group: USEFUL PRIMITIVES
*************************************************************************)
(* View: comment *)
let comment = Util.comment_generic /[ \t]*[;#][ \t]*/ "# "
(* View: comment_eol *)
let comment_eol = Util.comment_generic /[ \t]*[;#][ \t]*/ " # "
(* View: empty *)
let empty = Util.empty
(************************************************************************
* Group: MAIN OPTIONS
*************************************************************************)
(* View: netmask
A network mask for IP addresses *)
let netmask = [ label "netmask" . Util.del_str "/" . store Rx.ip ]
(* View: ipaddr
An IP address or range with an optional mask *)
let ipaddr = [label "ipaddr" . store Rx.ip . netmask?]
(* View: nameserver
A nameserver entry *)
let nameserver = Build.key_value_line_comment
"nameserver" Sep.space (store Rx.ip) comment_eol
(* View: domain *)
let domain = Build.key_value_line_comment
"domain" Sep.space (store Rx.word) comment_eol
(* View: search *)
let search = Build.key_value_line_comment
"search" Sep.space
(Build.opt_list
[label "domain" . store Rx.word]
Sep.space)
comment_eol
(* View: sortlist *)
let sortlist = Build.key_value_line_comment
"sortlist" Sep.space
(Build.opt_list
ipaddr
Sep.space)
comment_eol
(* View: lookup *)
let lookup =
let lookup_entry = Build.flag("bind"|"file"|"yp")
in Build.key_value_line_comment
"lookup" Sep.space
(Build.opt_list
lookup_entry
Sep.space)
comment_eol
(* View: family *)
let family =
let family_entry = Build.flag("inet4"|"inet6")
in Build.key_value_line_comment
"family" Sep.space
(Build.opt_list
family_entry
Sep.space)
comment_eol
(************************************************************************
* Group: SPECIAL OPTIONS
*************************************************************************)
(* View: ip6_dotint
ip6-dotint option, which supports negation *)
let ip6_dotint =
let negate = [ del "no-" "no-" . label "negate" ]
in [ negate? . key "ip6-dotint" ]
(* View: options
Options values *)
let options =
let options_entry = Build.key_value ("ndots"|"timeout"|"attempts")
(Util.del_str ":") (store Rx.integer)
| Build.flag ("debug"|"rotate"|"no-check-names"
|"inet6"|"ip6-bytestring"|"edns0"
|"single-request-reopen")
| ip6_dotint
in Build.key_value_line_comment
"options" Sep.space
(Build.opt_list
options_entry
Sep.space)
comment_eol
(* View: entry *)
let entry = nameserver
| domain
| search
| sortlist
| options
| lookup
| family
(* View: lns *)
let lns = ( empty | comment | entry )*
(* Variable: filter *)
let filter = (incl "/etc/resolv.conf")
let xfm = transform lns filter
|