Compare commits
3 commits
f0259b04b5
...
a6ebf32529
Author | SHA1 | Date | |
---|---|---|---|
a6ebf32529 | |||
64653f79d5 | |||
e58a89c4f4 |
2 changed files with 17 additions and 1 deletions
2
app/dune
2
app/dune
|
@ -1,3 +1,3 @@
|
|||
(executable
|
||||
(name mgit)
|
||||
(libraries mirage-clock-unix logs.fmt fmt.tty git-unix git-kv))
|
||||
(libraries mirage-clock-unix logs.fmt fmt.tty git-unix git-kv mirage-crypto-rng.unix))
|
||||
|
|
16
app/mgit.ml
16
app/mgit.ml
|
@ -82,6 +82,15 @@ let list ~quiet store key =
|
|||
if not quiet then Fmt.epr "%a.\n%!" Store.pp_error err ;
|
||||
Lwt.return (Ok 1)
|
||||
|
||||
let last_modified ~quiet store key =
|
||||
Store.last_modified store key >>= function
|
||||
| Ok time ->
|
||||
Fmt.pr "%a\n%!" Ptime.pp time;
|
||||
Lwt.return (Ok 0)
|
||||
| Error err ->
|
||||
if not quiet then Fmt.epr "%a.\n%!" Store.pp_error err ;
|
||||
Lwt.return (Ok 1)
|
||||
|
||||
let pull ~quiet store =
|
||||
Git_kv.pull store >>= function
|
||||
| Error (`Msg err) -> if not quiet then Fmt.epr "%s.\n%!" err ; Lwt.return (Ok 1)
|
||||
|
@ -134,6 +143,9 @@ let repl store fd_in =
|
|||
| [ "list"; key; ] ->
|
||||
with_key ~f:(list ~quiet:false store0) key
|
||||
>|= ignore >>= fun () -> go store0
|
||||
| [ "mtime"; key; ] ->
|
||||
with_key ~f:(last_modified ~quiet:false store0) key
|
||||
>|= ignore >>= fun () -> go store0
|
||||
| [ "pull"; ] ->
|
||||
if is_a_tty then Fmt.pr "\n%!" ; pull ~quiet:false store0
|
||||
>|= ignore >>= fun () -> go store0
|
||||
|
@ -169,6 +181,10 @@ let run remote = function
|
|||
| Ok t -> repl t Unix.stdin
|
||||
| Error (`Msg err) -> Fmt.failwith "%s." err )
|
||||
|
||||
let run remote filename_opt =
|
||||
let () = Mirage_crypto_rng_unix.initialize (module Mirage_crypto_rng.Fortuna) in
|
||||
run remote filename_opt
|
||||
|
||||
let () = match Sys.argv with
|
||||
| [| _; remote; |] -> run remote None
|
||||
| [| _; remote; filename; |] when Sys.file_exists filename ->
|
||||
|
|
Loading…
Reference in a new issue