Blame lenses/puppetfileserver.aug

Packit Service a2ae7a
(* -*- coding: utf-8 -*-
Packit Service a2ae7a
Module: PuppetFileserver
Packit Service a2ae7a
  Parses /etc/puppet/fileserver.conf used by puppetmasterd daemon.
Packit Service a2ae7a
Packit Service a2ae7a
Author: Frédéric Lespez <frederic.lespez@free.fr>
Packit Service a2ae7a
Packit Service a2ae7a
About: Reference
Packit Service a2ae7a
  This lens tries to keep as close as possible to puppet documentation
Packit Service a2ae7a
  for this file:
Packit Service a2ae7a
  http://docs.puppetlabs.com/guides/file_serving.html
Packit Service a2ae7a
Packit Service a2ae7a
About: License
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
  Sample usage of this lens in augtool
Packit Service a2ae7a
Packit Service a2ae7a
    * Create a new mount point
Packit Service a2ae7a
      > ins test_mount after /files/etc/puppet/fileserver.conf/*[last()]
Packit Service a2ae7a
      > defvar test_mount /files/etc/puppet/fileserver.conf/test_mount
Packit Service a2ae7a
      > set $test_mount/path /etc/puppet/files
Packit Service a2ae7a
      > set $test_mount/allow *.example.com
Packit Service a2ae7a
      > ins allow after $test_mount/*[last()]
Packit Service a2ae7a
      > set $test_mount/allow[last()] server.domain.com
Packit Service a2ae7a
      > set $test_mount/deny dangerous.server.com
Packit Service a2ae7a
    * List the definition of a mount point
Packit Service a2ae7a
      > print /files/etc/puppet/fileserver.conf/files
Packit Service a2ae7a
    * Remove a mount point
Packit Service a2ae7a
      > rm /files/etc/puppet/fileserver.conf/test_mount
Packit Service a2ae7a
Packit Service a2ae7a
About: Configuration files
Packit Service a2ae7a
  This lens applies to /etc/puppet/fileserver.conf. See <filter>.
Packit Service a2ae7a
*)
Packit Service a2ae7a
Packit Service a2ae7a
Packit Service a2ae7a
module PuppetFileserver =
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
(* Group: INI File settings *)
Packit Service a2ae7a
Packit Service a2ae7a
(* Variable: eol *)
Packit Service a2ae7a
let eol = IniFile.eol
Packit Service a2ae7a
Packit Service a2ae7a
(* Variable: sep
Packit Service a2ae7a
  Only treat one space as the sep, extras are stripped by IniFile *)
Packit Service a2ae7a
let sep = Util.del_str " "
Packit Service a2ae7a
Packit Service a2ae7a
(*
Packit Service a2ae7a
Variable: comment
Packit Service a2ae7a
  Only supports "#" as commentary
Packit Service a2ae7a
*)
Packit Service a2ae7a
let comment = IniFile.comment "#" "#"
Packit Service a2ae7a
Packit Service a2ae7a
(*
Packit Service a2ae7a
Variable: entry_re
Packit Service a2ae7a
  Regexp for possible <entry> keyword (path, allow, deny)
Packit Service a2ae7a
*)
Packit Service a2ae7a
let entry_re = /path|allow|deny/
Packit Service a2ae7a
Packit Service a2ae7a
Packit Service a2ae7a
(************************************************************************
Packit Service a2ae7a
 * Group:                 ENTRY
Packit Service a2ae7a
 *************************************************************************)
Packit Service a2ae7a
Packit Service a2ae7a
(*
Packit Service a2ae7a
View: entry
Packit Service a2ae7a
  - It might be indented with an arbitrary amount of whitespace
Packit Service a2ae7a
  - It does not have any separator between keywords and their values
Packit Service a2ae7a
  - It can only have keywords with the following values (path, allow, deny)
Packit Service a2ae7a
*)
Packit Service a2ae7a
let entry = IniFile.indented_entry entry_re sep comment
Packit Service a2ae7a
Packit Service a2ae7a
Packit Service a2ae7a
(************************************************************************
Packit Service a2ae7a
 * Group:                      RECORD
Packit Service a2ae7a
 *************************************************************************)
Packit Service a2ae7a
Packit Service a2ae7a
(* Group: Title definition *)
Packit Service a2ae7a
Packit Service a2ae7a
(*
Packit Service a2ae7a
View: title
Packit Service a2ae7a
  Uses standard INI File title
Packit Service a2ae7a
*)
Packit Service a2ae7a
let title = IniFile.indented_title IniFile.record_re
Packit Service a2ae7a
Packit Service a2ae7a
(*
Packit Service a2ae7a
View: title
Packit Service a2ae7a
  Uses standard INI File record
Packit Service a2ae7a
*)
Packit Service a2ae7a
let record = IniFile.record title entry
Packit Service a2ae7a
Packit Service a2ae7a
Packit Service a2ae7a
(************************************************************************
Packit Service a2ae7a
 * Group:                      LENS
Packit Service a2ae7a
 *************************************************************************)
Packit Service a2ae7a
Packit Service a2ae7a
(*
Packit Service a2ae7a
View: lns
Packit Service a2ae7a
  Uses standard INI File lens
Packit Service a2ae7a
*)
Packit Service a2ae7a
let lns = IniFile.lns record comment
Packit Service a2ae7a
Packit Service a2ae7a
(* Variable: filter *)
Packit Service a2ae7a
let filter = (incl "/etc/puppet/fileserver.conf"
Packit Service a2ae7a
             .incl "/usr/local/etc/puppet/fileserver.conf"
Packit Service a2ae7a
             .incl "/etc/puppetlabs/puppet/fileserver.conf")
Packit Service a2ae7a
Packit Service a2ae7a
let xfm = transform lns filter