Changeset 6 in code for trunk/lib


Ignore:
Timestamp:
Jun 16, 2022, 9:59:30 PM (3 years ago)
Author:
fox
Message:

txt publish <id>; file and convert to standard dirs

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/lib/file_store.ml

    r3 r6  
    44
    55let extension = ".txt"
    6 let def_dir = try Sys.getenv "LOGARION_DIR" with Not_found -> "."
     6let def_dir () =
     7        let share = Sys.getenv "HOME" ^ "/.local/share/texts/" in
     8        try Sys.getenv "txtdir" with Not_found ->
     9                match Sys.is_directory share with
     10                | true -> share
     11                | false | exception (Sys_error _) -> "."
    712
    813let to_string f =
     
    5055                ) else it
    5156
     57let split_filetypes files =
     58        let acc (dirs, files) x = if Sys.is_directory x
     59                then (x::dirs, files) else (dirs, x::files) in
     60        List.fold_left acc ([],[]) files
     61
    5262(* Compare file system nodes to skip reparsing? *)
    5363let list_fs ?(r=false) dir =
     
    7383        @@ List.fold_left (fold_valid_text predicate) new_iteration flist
    7484
    75 let iter ?(r=false) ?(dir=def_dir) ?(predicate=fun _ -> true) ?order ?number fn =
     85let iter ?(r=false) ?(dir=def_dir ()) ?(predicate=fun _ -> true) ?order ?number fn =
    7686        let flist = list_fs ~r dir in match order with
    7787        | Some comp -> List.iter fn @@ fold_sort_take ~predicate ~number comp flist
     
    7989                List.fold_left (fold_valid_text predicate) new_iteration flist
    8090
    81 let fold ?(r=false) ?(dir=def_dir) ?(predicate=fun _ -> true) ?order ?number fn acc =
     91let fold ?(r=false) ?(dir=def_dir ()) ?(predicate=fun _ -> true) ?order ?number fn acc =
    8292        let flist = list_fs ~r dir in match order with
    8393        | Some comp -> List.fold_left fn acc @@ fold_sort_take ~predicate ~number comp flist
     
    8595                List.fold_left (fold_valid_text predicate) new_iteration flist
    8696
    87 let with_id ?(r=false) ?(dir=def_dir) id =
     97let with_id ?(r=false) ?(dir=def_dir ()) id =
    8898        let matched acc path =
    8999                match to_text path with
     
    126136        if Sys.file_exists candidate then Error "Name clash, try again" else Ok candidate
    127137
    128 let with_text ?(dir=def_dir) new_text =
     138let with_text ?(dir=def_dir ()) new_text =
    129139        match id_filename dir extension new_text with
    130140        | Error _ as e -> e
Note: See TracChangeset for help on using the changeset viewer.