/usr/share/augeas/lenses/dist/bootconf.aug is in augeas-lenses 1.10.1-2.
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 | (*
Module: BootConf
Parses (Open)BSD-stype /etc/boot.conf
Author: Jasper Lievisse Adriaanse <jasper@jasper.la>
About: Reference
This lens is used to parse the second-stage bootstrap configuration
file, /etc/boot.conf as found on OpenBSD. The format is largely MI,
with MD parts included:
http://www.openbsd.org/cgi-bin/man.cgi?query=boot.conf&arch=i386
About: Usage Example
To be documented
About: License
This file is licensed under the LGPL v2+, like the rest of Augeas.
About: Configuration files
This lens applies to /etc/boot.conf.
See <filter>.
*)
module BootConf =
autoload xfm
(************************************************************************
* Utility variables/functions
************************************************************************)
(* View: comment *)
let comment = Util.comment
(* View: empty *)
let empty = Util.empty
(* View: eol *)
let eol = Util.eol
(* View: fspath *)
let fspath = Rx.fspath
(* View: space *)
let space = Sep.space
(* View: word *)
let word = Rx.word
(************************************************************************
* View: key_opt_value_line
* A subnode with a keyword, an optional part consisting of a separator
* and a storing lens, and an end of line
*
* Parameters:
* kw:regexp - the pattern to match as key
* sto:lens - the storing lens
************************************************************************)
let key_opt_value_line (kw:regexp) (sto:lens) =
[ key kw . (space . sto)? . eol ]
(************************************************************************
* Commands
************************************************************************)
(* View: single_command
single command such as 'help' or 'time' *)
let single_command =
let line_re = /help|time|reboot/
in [ Util.indent . key line_re . eol ]
(* View: ls
ls [directory] *)
let ls = Build.key_value_line
"ls" space (store fspath)
let set_cmd = "addr"
| "debug"
| "device"
| "howto"
| "image"
| "timeout"
| "tty"
(* View: set
set [varname [value]] *)
let set = Build.key_value
"set" space
(key_opt_value_line set_cmd (store Rx.space_in))
(* View: stty
stty [device [speed]] *)
let stty =
let device = [ label "device" . store fspath ]
in let speed = [ label "speed" . store Rx.integer ]
in key_opt_value_line "stty" (device . (space . speed)?)
(* View: echo
echo [args] *)
let echo = Build.key_value_line
"echo" space (store word)
(* View: boot
boot [image [-acds]]
XXX: the last arguments are not always needed, so make them optional *)
let boot =
let image = [ label "image" . store fspath ]
in let arg = [ label "arg" . store word ]
in Build.key_value_line "boot" space (image . space . arg)
(* View: machine
machine [command] *)
let machine =
let machine_entry = Build.key_value ("comaddr"|"memory")
space (store word)
| Build.flag ("diskinfo"|"regs")
in Build.key_value_line
"machine" space
(Build.opt_list
machine_entry
space)
(************************************************************************
* Lens
************************************************************************)
(* View: command *)
let command = boot | echo | ls | machine | set | stty
(* View: lns *)
let lns = ( empty | comment | command | single_command )*
(* Variable: filter *)
let filter = (incl "/etc/boot.conf")
let xfm = transform lns filter
|