43 lines
1.0 KiB
Plaintext
43 lines
1.0 KiB
Plaintext
|
(*
|
||
|
Module: Modules_conf
|
||
|
Parses /etc/modules.conf and /etc/conf.modules
|
||
|
|
||
|
Based on the similar Modprobe lens
|
||
|
|
||
|
Not all directives currently listed in modules.conf(5) are currently
|
||
|
supported.
|
||
|
*)
|
||
|
module Modules_conf =
|
||
|
autoload xfm
|
||
|
|
||
|
let comment = Util.comment
|
||
|
let empty = Util.empty
|
||
|
let eol = Util.eol | Util.comment
|
||
|
|
||
|
(* Basic file structure is the same as modprobe.conf *)
|
||
|
let sto_to_eol = Modprobe.sto_to_eol
|
||
|
let sep_space = Modprobe.sep_space
|
||
|
|
||
|
let path = [ key "path" . Util.del_str "=" . sto_to_eol . eol ]
|
||
|
let keep = [ key "keep" . eol ]
|
||
|
let probeall = Build.key_value_line_comment "probeall" sep_space
|
||
|
sto_to_eol
|
||
|
comment
|
||
|
|
||
|
let entry =
|
||
|
Modprobe.alias
|
||
|
| Modprobe.options
|
||
|
| Modprobe.kv_line_command /install|pre-install|post-install/
|
||
|
| Modprobe.kv_line_command /remove|pre-remove|post-remove/
|
||
|
| keep
|
||
|
| path
|
||
|
| probeall
|
||
|
|
||
|
|
||
|
let lns = (comment|empty|entry)*
|
||
|
|
||
|
let filter = (incl "/etc/modules.conf") .
|
||
|
(incl "/etc/conf.modules")
|
||
|
|
||
|
let xfm = transform lns filter
|