Something went wrong. Try again.
My own corner of monopam
Something went wrong. Try again.
1.0 kB · 33 lines
OCaml
at main
12345678910111213141516171819202122232425262728293031323334open Cmdliner
let delete_entry t k = Common.Log.info (fun m -> m "delete %s" k); Sqlite.Kv.delete t k
let delete () db keys = Common.user_error ~db @@ fun () -> Eio_main.run @@ fun env -> Eio.Switch.run @@ fun sw -> let path = Common.db_path env db in (* Deleting creates nothing: a path that is not there is a typo to report. *) Sqlite.with_open ~sw ~create:false ~clock:(Common.clock env) path (fun t -> List.iter (delete_entry t) keys); Common.Log.info (fun m -> m "deleted %d entries from %s" (List.length keys) db)
let cmd = let keys = Arg.( value & pos_right 0 string [] & info [] ~docv:"KEY" ~doc:"Keys to delete.") in let info = Cmd.info "delete" ~doc:"Delete entries from a database." ~man: [ `S Manpage.s_description; `P "Remove the given keys from a SQLite database."; `S Manpage.s_examples; `P "$(iname) mydb.db key1 key2"; ] in Cmd.v info Term.(const delete $ Common.logging $ Common.db_arg $ keys)