32 lines
780 B
Plaintext
32 lines
780 B
Plaintext
(* Parsing /etc/inittab *)
|
|
module Inittab =
|
|
autoload xfm
|
|
|
|
let sep = Util.del_str ":"
|
|
let eol = Util.del_str "\n"
|
|
|
|
let id = /[^\/#:\n]{1,4}/
|
|
let value = /[^#:\n]*/
|
|
|
|
let comment = Util.comment|Util.empty
|
|
|
|
let record =
|
|
let field (name:string) = [ label name . store value ] in
|
|
let process = [ label "process" . store /[^#\n]*/ ] in
|
|
let eolcomment =
|
|
[ label "#comment" . del /#[ \t]*/ "# "
|
|
. store /([^ \t\n].*[^ \t\n]|[^ \t\n]?)/ ] in
|
|
[ key id . sep .
|
|
field "runlevels" . sep .
|
|
field "action" . sep .
|
|
process . eolcomment? . eol ]
|
|
|
|
let lns = ( comment | record ) *
|
|
|
|
let xfm = transform lns (incl "/etc/inittab")
|
|
|
|
|
|
(* Local Variables: *)
|
|
(* mode: caml *)
|
|
(* End: *)
|