Changeset 6 in code


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

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

Location:
trunk
Files:
1 added
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/cli/dune

    r3 r6  
    22 (name txt)
    33 (public_name txt)
    4  (modules txt authors convert conversion file index last listing new topics html atom gemini pull)
     4 (modules txt authors convert conversion file index last listing new topics html atom gemini publish pull)
    55 (libraries text_parse.converter text_parse.parsers logarion msgpck curl str cmdliner))
  • trunk/cli/file.ml

    r3 r6  
    1 let split_filetypes files =
    2         let acc (dirs, files) x = if Sys.is_directory x
    3                 then (x::dirs, files) else (dirs, x::files) in
    4         List.fold_left acc ([],[]) files
    5 
    61open Logarion
    72let file files =
    8         let dirs, files = split_filetypes files in
     3        let dirs, files = File_store.split_filetypes files in
    94        let _link_as_named dir file = Unix.link file (Filename.concat dir file) in
    105        let link_with_id dir file =
     
    1510
    1611let unfile files =
    17         let dirs, files = split_filetypes files in
     12        let dirs, files = File_store.split_filetypes files in
    1813        let unlink dir file = try Unix.unlink (Filename.concat dir file)
    1914                with Unix.(Unix_error(ENOENT,_,_))-> () in
  • trunk/cli/txt.ml

    r3 r6  
    1515        Listing.term;
    1616        New.term;
     17        Publish.term;
    1718        Pull.term;
    1819        Topics.term;
  • 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.