1(* 2Module: Kdump 3 Parses /etc/kdump.conf 4 5Author: Roman Rakus <rrakus@redhat.com> 6 7About: References 8 manual page kdump.conf(5) 9 10About: License 11 This file is licenced under the LGPL v2+, like the rest of Augeas. 12 13About: Configuration files 14 This lens applies to /etc/kdump.conf. See <filter>. 15*) 16 17module Kdump = 18 autoload xfm 19 20(************************************************************************ 21 * Group: USEFUL PRIMITIVES 22 *************************************************************************) 23 24let empty = Util.empty 25let comment = Util.comment 26let value_to_eol = store /[^ \t\n#][^\n#]*[^ \t\n#]|[^ \t\n#]/ 27let int_to_eol = store Rx.integer 28let delimiter = Util.del_ws_spc 29let eol = Util.eol 30let value_to_spc = store Rx.neg1 31let key_to_space = key /[A-Za-z0-9_.\$-]+/ 32let eq = Sep.equal 33 34(************************************************************************ 35 * Group: ENTRY TYPES 36 *************************************************************************) 37 38let list (kw:string) = counter kw 39 . Build.key_value_line_comment kw delimiter 40 (Build.opt_list [ seq kw . value_to_spc ] delimiter) 41 comment 42 43let mdl_key_value = [ delimiter . key_to_space . ( eq . value_to_spc)? ] 44let mdl_options = [ key_to_space . mdl_key_value+ ] 45let mod_options = [ key "options" . delimiter . mdl_options . (comment|eol) ] 46 47(************************************************************************ 48 * Group: ENTRIES 49 *************************************************************************) 50 51(* Got from mount(8) *) 52let fs_types = "adfs" | "affs" | "autofs" | "cifs" | "coda" | "coherent" 53 | "cramfs" | "debugfs" | "devpts" | "efs" | "ext" | "ext2" 54 | "ext3" | "ext4" | "hfs" | "hfsplus" | "hpfs" | "iso9660" 55 | "jfs" | "minix" | "msdos" | "ncpfs" | "nfs" | "nfs4" | "ntfs" 56 | "proc" | "qnx4" | "ramfs" | "reiserfs" | "romfs" | "squashfs" 57 | "smbfs" | "sysv" | "tmpfs" | "ubifs" | "udf" | "ufs" | "umsdos" 58 | "usbfs" | "vfat" | "xenix" | "xfs" | "xiafs" 59 60let simple_kws = "raw" | "net" | "path" | "core_collector" | "kdump_post" 61 | "kdump_pre" | "default" | "ssh" | "sshkey" | "dracut_args" 62 | "fence_kdump_args" 63 64let int_kws = "force_rebuild" | "override_resettable" | "debug_mem_level" 65 | "link_delay" | "disk_timeout" 66 67let option = Build.key_value_line_comment ( simple_kws | fs_types ) 68 delimiter value_to_eol comment 69 | Build.key_value_line_comment int_kws delimiter int_to_eol comment 70 | list "extra_bins" 71 | list "extra_modules" 72 | list "blacklist" 73 | list "fence_kdump_nodes" 74 | mod_options 75 76(* View: lns 77 The options lens 78*) 79let lns = ( empty | comment | option )* 80 81let filter = incl "/etc/kdump.conf" 82 83let xfm = transform lns filter 84