Changeset 25 in code for trunk/lib/archive.ml


Ignore:
Timestamp:
Nov 13, 2022, 1:15:27 PM (2 years ago)
Author:
fox
Message:

New edit <ID> command and updated readme

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/lib/archive.ml

    r9 r25  
    1515  let q = String_set.query query_string in
    1616  fun n -> String_set.(predicate q (Text.set "Topics" n))
     17
     18let apply_sys_util env def_env r order_opt reverse_opt number_opt authors_opt topics_opt id_opt =
     19        let predicates = if id_opt <> "" then [ ided id_opt ] else []
     20                @ predicate authored authors_opt
     21                @ predicate topics topics_opt in
     22        let predicate text = List.fold_left (fun a e -> a && e text) true predicates in
     23        let util = try Sys.getenv env with Not_found -> def_env in
     24        let print_text acc (_t, fnames) = Printf.sprintf "%s %s" acc (List.hd fnames) in
     25        let paths = match order_opt with
     26        | false -> File_store.fold ~r ~predicate print_text ""
     27        | true ->
     28                let order = match reverse_opt with true -> File_store.newest | false -> File_store.oldest in
     29                match number_opt with
     30                | Some number -> File_store.fold ~r ~predicate ~order ~number print_text ""
     31                | None -> File_store.fold ~r ~predicate ~order print_text ""
     32        in if paths = "" then ()
     33        else (ignore @@ Sys.command @@ Printf.sprintf "%s %s" util paths)
Note: See TracChangeset for help on using the changeset viewer.