Blame lenses/solaris_system.aug

Packit Service a2ae7a
(*
Packit Service a2ae7a
Module: Solaris_System
Packit Service a2ae7a
  Parses /etc/system on Solaris
Packit Service a2ae7a
Packit Service a2ae7a
Author: Dominic Cleal <dcleal@redhat.com>
Packit Service a2ae7a
Packit Service a2ae7a
About: Reference
Packit Service a2ae7a
  This lens tries to keep as close as possible to `man 4 system` where possible.
Packit Service a2ae7a
Packit Service a2ae7a
About: Licence
Packit Service a2ae7a
  This file is licensed under the LGPL v2+, like the rest of Augeas.
Packit Service a2ae7a
Packit Service a2ae7a
About: Lens Usage
Packit Service a2ae7a
Packit Service a2ae7a
About: Configuration files
Packit Service a2ae7a
  This lens applies to /etc/system on Solaris. See <filter>.
Packit Service a2ae7a
*)
Packit Service a2ae7a
Packit Service a2ae7a
module Solaris_System =
Packit Service a2ae7a
autoload xfm
Packit Service a2ae7a
Packit Service a2ae7a
(************************************************************************
Packit Service a2ae7a
 * Group:                 USEFUL PRIMITIVES
Packit Service a2ae7a
 ************************************************************************)
Packit Service a2ae7a
Packit Service a2ae7a
(* View: comment *)
Packit Service a2ae7a
let comment = Util.comment_generic /[ \t]*\*[ \t]*/ "* "
Packit Service a2ae7a
Packit Service a2ae7a
(* View: empty
Packit Service a2ae7a
    Map empty lines, including empty asterisk comments *)
Packit Service a2ae7a
let empty   = [ del /[ \t]*\*?[ \t]*\n/ "\n" ]
Packit Service a2ae7a
Packit Service a2ae7a
(* View: sep_colon
Packit Service a2ae7a
    The separator for key/value entries *)
Packit Service a2ae7a
let sep_colon = del /:[ \t]*/ ": "
Packit Service a2ae7a
Packit Service a2ae7a
(* View: sep_moddir
Packit Service a2ae7a
    The separator of directories in a moddir search path *)
Packit Service a2ae7a
let sep_moddir = del /[: ]+/ " "
Packit Service a2ae7a
Packit Service a2ae7a
(* View: modpath
Packit Service a2ae7a
    Individual moddir search path entry *)
Packit Service a2ae7a
let modpath = [ seq "modpath" . store /[^ :\t\n]+/ ]
Packit Service a2ae7a
Packit Service a2ae7a
(* Variable: set_operator
Packit Service a2ae7a
    Valid set operators: equals, bitwise AND and OR *)
Packit Service a2ae7a
let set_operators = /[=&|]/
Packit Service a2ae7a
Packit Service a2ae7a
(* View: set_value
Packit Service a2ae7a
    Sets an integer value or char pointer *)
Packit Service a2ae7a
let set_value = [ label "value" . store Rx.no_spaces ]
Packit Service a2ae7a
Packit Service a2ae7a
(************************************************************************
Packit Service a2ae7a
 * Group:                     COMMANDS
Packit Service a2ae7a
 ************************************************************************)
Packit Service a2ae7a
Packit Service a2ae7a
(* View: cmd_kv
Packit Service a2ae7a
    Function for simple key/value setting commands such as rootfs *)
Packit Service a2ae7a
let cmd_kv (cmd:string) (value:regexp) =
Packit Service a2ae7a
    Build.key_value_line cmd sep_colon (store value)
Packit Service a2ae7a
Packit Service a2ae7a
(* View: cmd_moddir
Packit Service a2ae7a
    The moddir command for specifying module search paths *)
Packit Service a2ae7a
let cmd_moddir =
Packit Service a2ae7a
    Build.key_value_line "moddir" sep_colon
Packit Service a2ae7a
        (Build.opt_list modpath sep_moddir)
Packit Service a2ae7a
Packit Service a2ae7a
(* View: set_var
Packit Service a2ae7a
    Loads the variable name from a set command, no module *)
Packit Service a2ae7a
let set_var = [ label "variable" . store Rx.word ]
Packit Service a2ae7a
Packit Service a2ae7a
(* View: set_var
Packit Service a2ae7a
    Loads the module and variable names from a set command *)
Packit Service a2ae7a
let set_varmod = [ label "module" . store Rx.word ]
Packit Service a2ae7a
                 . Util.del_str ":" . set_var
Packit Service a2ae7a
Packit Service a2ae7a
(* View: set_sep_spc *)
Packit Service a2ae7a
let set_sep_spc = Util.del_opt_ws " "
Packit Service a2ae7a
Packit Service a2ae7a
(* View: cmd_set
Packit Service a2ae7a
    The set command for individual kernel/module parameters *)
Packit Service a2ae7a
let cmd_set = [ key "set"
Packit Service a2ae7a
              . Util.del_ws_spc
Packit Service a2ae7a
              . ( set_var | set_varmod )
Packit Service a2ae7a
              . set_sep_spc
Packit Service a2ae7a
              . [ label "operator" . store set_operators ]
Packit Service a2ae7a
              . set_sep_spc
Packit Service a2ae7a
              . set_value
Packit Service a2ae7a
              . Util.eol ]
Packit Service a2ae7a
Packit Service a2ae7a
(************************************************************************
Packit Service a2ae7a
 * Group:                     LENS
Packit Service a2ae7a
 ************************************************************************)
Packit Service a2ae7a
Packit Service a2ae7a
(* View: lns *)
Packit Service a2ae7a
let lns = ( empty
Packit Service a2ae7a
          | comment
Packit Service a2ae7a
          | cmd_moddir
Packit Service a2ae7a
          | cmd_kv "rootdev" Rx.fspath
Packit Service a2ae7a
          | cmd_kv "rootfs" Rx.word
Packit Service a2ae7a
          | cmd_kv "exclude" Rx.fspath
Packit Service a2ae7a
          | cmd_kv "include" Rx.fspath
Packit Service a2ae7a
          | cmd_kv "forceload" Rx.fspath
Packit Service a2ae7a
          | cmd_set )*
Packit Service a2ae7a
Packit Service a2ae7a
(* Variable: filter *)
Packit Service a2ae7a
let filter = (incl "/etc/system")
Packit Service a2ae7a
Packit Service a2ae7a
let xfm = transform lns filter