HEX
Server: Apache
System: Linux dinesh8149 5.15.98-grsec-sharedvalley-2.lc.el8.x86_64 #1 SMP Thu Mar 9 09:07:30 -03 2023 x86_64
User: usesambura1 (1212012)
PHP: 7.0.33
Disabled: apache_child_terminate,dl,escapeshellarg,escapeshellcmd,exec,link,mail,openlog,passthru,pcntl_alarm,pcntl_exec,pcntl_fork,pcntl_get_last_error,pcntl_getpriority,pcntl_setpriority,pcntl_signal,pcntl_signal_dispatch,pcntl_sigprocmask,pcntl_sigtimedwait,pcntl_sigwaitinfo,pcntl_strerror,pcntl_wait,pcntl_waitpid,pcntl_wexitstatus,pcntl_wifexited,pcntl_wifsignaled,pcntl_wifstopped,pcntl_wstopsig,pcntl_wtermsig,php_check_syntax,php_strip_whitespace,popen,proc_close,proc_open,shell_exec,symlink,system
Upload Files
File: //usr/share/augeas/lenses/dist/aliases.aug
(*
Module: Aliases
  Parses /etc/aliases

Author: David Lutterkort <lutter@redhat.com>

About: Reference
  This lens tries to keep as close as possible to `man 5 aliases` where possible.

About: License
   This file is licenced under the LGPL v2+, like the rest of Augeas.

About: Lens Usage
   See <lns>.

About: Configuration files
   This lens applies to /etc/aliases.

About: Examples
   The <Test_Aliases> file contains various examples and tests.
*)

module Aliases =
   autoload xfm

   (************************************************************************
    * Group:                 USEFUL PRIMITIVES
    *************************************************************************)

   (* Group: basic tokens *)

   (* Variable: word *)
   let word = /[^|", \t\n]+/
   (* Variable: name *)
   let name = /([^ \t\n#:|@]+|"[^"|\n]*")/ (* " make emacs calm down *)

   (* Variable: command
    * a command can contain spaces, if enclosed in double quotes, the case
    * without spaces is taken care with <word>
    *)
   let command = /(\|([^", \t\n]+|"[^"\n]+"))|("\|[^"\n]+")/

   (* Group: Comments and empty lines *)

   (* View: eol *)
   let eol   = Util.eol
   (* View: comment *)
   let comment = Util.comment
   (* View: empty *)
   let empty   = Util.empty

   (* Group: separators *)
   (* View: colon
    * Separation between the alias and it's destinations
    *)
   let colon = del /[ \t]*:[ \t]*/ ":\t"
   (* View: comma
    * Separation between multiple destinations
    *)
   let comma = del /[ \t]*,[ \t]*(\n[ \t]+)?/ ", "

   (* Group: alias *)

   (* View: destination
    * Can be either a word (no spaces included) or a command with spaces
    *)
   let destination = ( word | command )

   (* View: value_list
    * List of destinations
    *)
   let value_list = Build.opt_list ([ label "value" . store destination]) comma

   (* View: alias
    * a name with one or more destinations
    *)
   let alias = [ seq "alias" .
                    [ label "name" . store name ] . colon .
                    value_list
                ] . eol

  (* View: lns *)
  let lns = (comment | empty | alias)*

  let xfm = transform lns (incl "/etc/aliases")

(* Local Variables: *)
(* mode: caml *)
(* End: *)