Skip to content
Snippets Groups Projects
Select Git revision
  • 00b87f1165b86853022f741f34d7b480b64611a9
  • master default protected
  • update-min-openvox-version-07f8cb2
  • cleanup_fixtures
  • add-openvox
  • freebsd-14
  • remove-legacy-top-scope-syntax
  • rel430
  • tests
  • revert-363-augeas-module-cleanup
  • release-4.1.0
  • puppet8
  • relax-dependencies
  • rel400
  • mode
  • puppet7
  • release-3.1.0
  • freebsd13
  • freebsd11
  • stdlib
  • centos
  • v5.1.0
  • v5.0.0
  • v4.5.0
  • v4.4.0
  • v4.3.0
  • v4.2.1
  • v4.2.0
  • v4.1.0
  • v4.0.0
  • v3.1.0
  • v3.0.0
  • v2.0.0
  • 1.12.0
  • 1.11.0
  • 1.10.0
  • 1.9.0
  • 1.8.0
  • 1.7.0
  • 1.6.0
  • 1.5.0
41 results

postfix_virtual.aug

Blame
  • user avatar
    James Brown authored and Raphaël Pinson committed
    6f078e57
    History
    Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    postfix_virtual.aug 1.26 KiB
    (*
    Module: Postfix_Virtual
      Parses /etc/postfix/virtual
    
    Author: Raphael Pinson <raphael.pinson@camptocamp.com>
    
    About: Reference
      This lens tries to keep as close as possible to `man 5 virtual` where possible.
    
    About: License
       This file is licenced under the LGPL v2+, like the rest of Augeas.
    
    About: Lens Usage
       To be documented
    
    About: Configuration files
       This lens applies to /etc/postfix/virtual. See <filter>.
    
    About: Examples
       The <Test_Postfix_Virtual> file contains various examples and tests.
    *)
    
    module Postfix_Virtual =
    
    autoload xfm
    
    (* Variable: space_or_eol_re *)
    let space_or_eol_re = /([ \t]*\n)?[ \t]+/
    
    (* View: space_or_eol *)
    let space_or_eol (sep:regexp) (default:string) =
      del (space_or_eol_re? . sep . space_or_eol_re?) default 
    
    (* View: word *)
    let word = store /[A-Za-z0-9@\*.+-]+/
    
    (* View: comma *)
    let comma = space_or_eol "," ", "
    
    (* View: destination *)
    let destination = [ label "destination" . word ]
    
    (* View: record *)
    let record =
      let destinations = Build.opt_list destination comma
      in [ label "pattern" . word
         . space_or_eol Rx.space " " . destinations
         . Util.eol ]
    
    (* View: lns *)
    let lns = (Util.empty | Util.comment | record)*
    
    (* Variable: filter *)
    let filter = incl "/etc/postfix/virtual"
    
    let xfm = transform lns filter