aboutsummaryrefslogtreecommitdiff
blob: 10a4e276c240567ab6ee697bddfdb01cc49f7132 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
(* Parsing /etc/portage/package.use *)

module Packageuse =
  autoload xfm

  let sep_spc = Util.del_ws_spc
  let sep_tab = Util.del_ws_tab

  let eol = del /[ \t]*\n/ "\n"
  let indent = del /[ \t]*/ ""

  let comment = Util.comment
  let empty   = [ del /[ \t]*#?[ \t]*\n/ "\n" ]

  let word = /[^# \n\t]+/
  let record = [ seq "packageuse" . indent .
                 [ label "package" . store  word ] . sep_tab .
                 [ label "use" . store word ] .
                 [ label "use" . sep_spc . store word ]*
                 . (comment|eol) ]

  let lns = ( empty | comment | record ) *
  let filter = (incl "/etc/portage/package.use")
    . (incl "/etc/portage/package.use/*")
  let xfm = transform lns filter