|
Packit Service |
a2ae7a |
(*
|
|
Packit Service |
a2ae7a |
Module: Aptsources
|
|
Packit Service |
a2ae7a |
Parsing /etc/apt/sources.list
|
|
Packit Service |
a2ae7a |
*)
|
|
Packit Service |
a2ae7a |
|
|
Packit Service |
a2ae7a |
module Aptsources =
|
|
Packit Service |
a2ae7a |
autoload xfm
|
|
Packit Service |
a2ae7a |
|
|
Packit Service |
a2ae7a |
(************************************************************************
|
|
Packit Service |
a2ae7a |
* Group: Utility variables/functions
|
|
Packit Service |
a2ae7a |
************************************************************************)
|
|
Packit Service |
a2ae7a |
(* View: sep_ws *)
|
|
Packit Service |
a2ae7a |
let sep_ws = Sep.space
|
|
Packit Service |
a2ae7a |
|
|
Packit Service |
a2ae7a |
(* View: eol *)
|
|
Packit Service |
a2ae7a |
let eol = Util.del_str "\n"
|
|
Packit Service |
a2ae7a |
|
|
Packit Service |
a2ae7a |
(* View: comment *)
|
|
Packit Service |
a2ae7a |
let comment = Util.comment
|
|
Packit Service |
a2ae7a |
(* View: empty *)
|
|
Packit Service |
a2ae7a |
let empty = Util.empty
|
|
Packit Service |
a2ae7a |
|
|
Packit Service |
a2ae7a |
(* View: word *)
|
|
Packit Service |
a2ae7a |
let word = /[^][# \n\t]+/
|
|
Packit Service |
a2ae7a |
|
|
Packit Service |
a2ae7a |
(* View: uri *)
|
|
Packit Service |
a2ae7a |
let uri =
|
|
Packit Service |
a2ae7a |
let protocol = /[a-z+]+:/
|
|
Packit Service |
a2ae7a |
in let path = /\/[^] \t]*/
|
|
Packit Service |
a2ae7a |
in let path_brack = /\[[^]]+\]\/?/
|
|
Packit Service |
a2ae7a |
in protocol? . path
|
|
Packit Service |
a2ae7a |
| protocol . path_brack
|
|
Packit Service |
a2ae7a |
|
|
Packit Service |
a2ae7a |
(************************************************************************
|
|
Packit Service |
a2ae7a |
* Group: Keywords
|
|
Packit Service |
a2ae7a |
************************************************************************)
|
|
Packit Service |
a2ae7a |
(* View: record *)
|
|
Packit Service |
a2ae7a |
let record =
|
|
Packit Service |
a2ae7a |
let option_sep = [ label "operation" . store /[+-]/]? . Sep.equal
|
|
Packit Service |
a2ae7a |
in let option = Build.key_value /arch|trusted/ option_sep (store Rx.word)
|
|
Packit Service |
a2ae7a |
in let options = [ label "options"
|
|
Packit Service |
a2ae7a |
. Util.del_str "[" . Sep.opt_space
|
|
Packit Service |
a2ae7a |
. Build.opt_list option Sep.space
|
|
Packit Service |
a2ae7a |
. Sep.opt_space . Util.del_str "]"
|
|
Packit Service |
a2ae7a |
. sep_ws ]
|
|
Packit Service |
a2ae7a |
in [ Util.indent . seq "source"
|
|
Packit Service |
a2ae7a |
. [ label "type" . store word ] . sep_ws
|
|
Packit Service |
a2ae7a |
. options?
|
|
Packit Service |
a2ae7a |
. [ label "uri" . store uri ] . sep_ws
|
|
Packit Service |
a2ae7a |
. [ label "distribution" . store word ]
|
|
Packit Service |
a2ae7a |
. [ label "component" . sep_ws . store word ]*
|
|
Packit Service |
a2ae7a |
. del /[ \t]*(#.*)?/ ""
|
|
Packit Service |
a2ae7a |
. eol ]
|
|
Packit Service |
a2ae7a |
|
|
Packit Service |
a2ae7a |
(************************************************************************
|
|
Packit Service |
a2ae7a |
* Group: Lens
|
|
Packit Service |
a2ae7a |
************************************************************************)
|
|
Packit Service |
a2ae7a |
(* View: lns *)
|
|
Packit Service |
a2ae7a |
let lns = ( comment | empty | record ) *
|
|
Packit Service |
a2ae7a |
|
|
Packit Service |
a2ae7a |
(* View: filter *)
|
|
Packit Service |
a2ae7a |
let filter = (incl "/etc/apt/sources.list")
|
|
Packit Service |
a2ae7a |
. (incl "/etc/apt/sources.list.d/*")
|
|
Packit Service |
a2ae7a |
. Util.stdexcl
|
|
Packit Service |
a2ae7a |
|
|
Packit Service |
a2ae7a |
let xfm = transform lns filter
|
|
Packit Service |
a2ae7a |
|
|
Packit Service |
a2ae7a |
(* Local Variables: *)
|
|
Packit Service |
a2ae7a |
(* mode: caml *)
|
|
Packit Service |
a2ae7a |
(* End: *)
|