aboutsummaryrefslogtreecommitdiff
path: root/lib/stitch.ml
diff options
context:
space:
mode:
Diffstat (limited to 'lib/stitch.ml')
-rw-r--r--lib/stitch.ml69
1 files changed, 0 insertions, 69 deletions
diff --git a/lib/stitch.ml b/lib/stitch.ml
deleted file mode 100644
index a6ba300..0000000
--- a/lib/stitch.ml
+++ /dev/null
@@ -1,69 +0,0 @@
-let execution_directory =
- Sys.getenv_opt "STICH_DIRECTORY" |> Option.value ~default:"/home/mccd/notes-example"
-
-
-let grep_cmd = Sys.getenv_opt "STICH_GREP_CMD" |> Option.value ~default:"ugrep"
-
-let run_print ~dir args =
- let open Shexp_process in
- let open Shexp_process.Infix in
- eval (chdir dir (call args |- read_all))
-
-
-let get_headlines () =
- run_print
- ~dir:execution_directory
- [ grep_cmd; "^\\*"; "-H"; "-r"; "-n"; "--separator=|" ]
-
-
-exception Not_A_Tuple of string * string
-
-(** Returns a tuple of file name and Content *)
-let parse_headlines s =
- String.split_on_char '\n' s
- (* Testing in utop it seems like there is maybe a bug with bounded_split, 1 doesn't work for ':'. Therefore using a slower implementation. *)
- |> List.filter_map (fun message ->
- if String.equal message ""
- then None
- else (
- let split = Str.bounded_split (Str.regexp "|") message 3 in
- match split with
- (* file, line, content *)
- | [ file_name; _; content ] -> Some (file_name, content)
- | _ -> raise (Not_A_Tuple (String.concat " SPLIT " split, message))))
- |> Array.of_list
-
-
-(** Used for pretty printing *)
-let get_padding list =
- Array.fold_left (fun n (file_name, _) -> Int.max n (String.length file_name)) 0 list
-
-
-let pad str n =
- let padding = n - String.length str in
- String.concat "" [ str; String.make padding ' ' ]
-
-
-(** Turns "2024-03-05.org:* Hello world" into "2024-03-05 | * Hello world" *)
-let pretty_format parsed_headlines =
- let padding = get_padding parsed_headlines in
- Array.map
- (fun (file_name, content) -> String.concat " | " [ pad file_name padding; content ])
- parsed_headlines
-
-
-(** Full body parsing *)
-
-let get_full_content () =
- run_print
- ~dir:execution_directory
- [ grep_cmd; "^\\*"; "-h"; "-r"; "-n"; "-C"; "9999"; "--separator='|'" ]
-
-(* let parse_file_headline collection full = *)
-(* match full with *)
-(* | s :: r -> *)
-(* let split = Str.bounded_split (Str.regexp ":1:") s 1 in *)
-(* (match split with *)
-(* (\* file, line, content *\) *)
-(* | [ file_name; content ] -> file_name, content *)
-(* | rest -> *)