HEX
Server: Apache/2.4.34 (Red Hat) OpenSSL/1.0.2k-fips
System: Linux WORDPRESS 3.10.0-1160.118.1.el7.x86_64 #1 SMP Thu Apr 4 03:33:23 EDT 2024 x86_64
User: digital (1020)
PHP: 7.2.24
Disabled: NONE
Upload Files
File: //usr/share/netcf/lenses/persist_net_rules.aug
(*
Module: Persist_Net_Rules
  Parses /etc/udev/rules.d/70-persistent-net.rules
*)
module Persist_Net_Rules =
autoload xfm

let comment = Util.comment
let empty = Util.empty
let eol = Util.eol | Util.comment

(* A separator is either whitespace or \ followed by newline *)
let sep_ch = /[ \t]|\\\\\n/
(* Anything that's not a separator is part of a token *)
let tok_ch = /[^ \t\n#\\",]|\\\\[^ \t\n]/
let optok_ch = /==/
let optok = del optok_ch "=="
let eq_optok_ch = /=/
let eq_optok = del eq_optok_ch "="
let indent = Util.del_opt_ws ""
let comma_ch = /,/
let commatok (n:string) = indent . del n n . indent

let token = store tok_ch+
let key_token = key /[a-z0-9]/+
let quote_ch = /"/
let quote = del quote_ch "\""

let name_arg (n:string) = Util.del_str n . indent . eq_optok . indent . quote . key_token . quote
let arg (n:string) = [ label n . Util.del_str n . indent . optok . indent . quote . token . quote ]

let entry = [ arg "SUBSYSTEM" . commatok "," .
		arg "ACTION" . commatok "," .
		arg "DRIVERS" . commatok "," .
		arg "ATTR{address}" . commatok "," .
		arg "ATTR{dev_id}" . commatok "," .
		arg "ATTR{type}" . commatok "," .
		arg "KERNEL" . commatok "," .
		name_arg "NAME" .  eol ]

let lns = (comment|empty|entry)*

let filter = incl "/etc/udev/rules.d/70-persistent-net.rules" .
  Util.stdexcl

let xfm = transform lns filter