|
Packit Service |
a2ae7a |
(* Soma module for Augeas
|
|
Packit Service |
a2ae7a |
Author: Free Ekanayaka <free@64studio.com>
|
|
Packit Service |
a2ae7a |
|
|
Packit Service |
a2ae7a |
Reference: man 5 soma.cfg
|
|
Packit Service |
a2ae7a |
|
|
Packit Service |
a2ae7a |
*)
|
|
Packit Service |
a2ae7a |
|
|
Packit Service |
a2ae7a |
module Soma =
|
|
Packit Service |
a2ae7a |
|
|
Packit Service |
a2ae7a |
autoload xfm
|
|
Packit Service |
a2ae7a |
|
|
Packit Service |
a2ae7a |
(************************************************************************
|
|
Packit Service |
a2ae7a |
* USEFUL PRIMITIVES
|
|
Packit Service |
a2ae7a |
*************************************************************************)
|
|
Packit Service |
a2ae7a |
|
|
Packit Service |
a2ae7a |
let eol = Util.eol
|
|
Packit Service |
a2ae7a |
let comment = Util.comment
|
|
Packit Service |
a2ae7a |
let empty = Util.empty
|
|
Packit Service |
a2ae7a |
|
|
Packit Service |
a2ae7a |
let sep_eq = del /[ \t]*=[ \t]*/ " = "
|
|
Packit Service |
a2ae7a |
|
|
Packit Service |
a2ae7a |
let sto_to_eol = store /([^ \t\n].*[^ \t\n]|[^ \t\n])/
|
|
Packit Service |
a2ae7a |
|
|
Packit Service |
a2ae7a |
let word = /[A-Za-z0-9_.-]+/
|
|
Packit Service |
a2ae7a |
|
|
Packit Service |
a2ae7a |
(************************************************************************
|
|
Packit Service |
a2ae7a |
* ENTRIES
|
|
Packit Service |
a2ae7a |
*************************************************************************)
|
|
Packit Service |
a2ae7a |
|
|
Packit Service |
a2ae7a |
let entry = [ key word
|
|
Packit Service |
a2ae7a |
. sep_eq
|
|
Packit Service |
a2ae7a |
. sto_to_eol
|
|
Packit Service |
a2ae7a |
. eol ]
|
|
Packit Service |
a2ae7a |
|
|
Packit Service |
a2ae7a |
(************************************************************************
|
|
Packit Service |
a2ae7a |
* LENS
|
|
Packit Service |
a2ae7a |
*************************************************************************)
|
|
Packit Service |
a2ae7a |
|
|
Packit Service |
a2ae7a |
let lns = (comment|empty|entry) *
|
|
Packit Service |
a2ae7a |
|
|
Packit Service |
a2ae7a |
let filter = incl "/etc/somad/soma.cfg"
|
|
Packit Service |
a2ae7a |
|
|
Packit Service |
a2ae7a |
let xfm = transform lns filter
|