mllib: compute checksum of file inside tar

Signed-off-by: Tomáš Golembiovský <tgolembi@redhat.com>
This commit is contained in:
Tomáš Golembiovský
2016-12-18 23:16:28 +01:00
committed by Pino Toscano
parent e86b36a31c
commit 347e4b1648
2 changed files with 14 additions and 4 deletions

View File

@@ -45,7 +45,7 @@ let of_string csum_type csum_value =
| "sha512" -> SHA512 csum_value
| _ -> invalid_arg csum_type
let verify_checksum csum filename =
let verify_checksum csum ?tar filename =
let prog, csum_ref =
match csum with
| SHA1 c -> "sha1sum", c
@@ -53,7 +53,14 @@ let verify_checksum csum filename =
| SHA512 c -> "sha512sum", c
in
let cmd = sprintf "%s %s" prog (Filename.quote filename) in
let cmd =
match tar with
| None ->
sprintf "%s %s" prog (quote filename)
| Some tar ->
sprintf "tar xOf %s %s | %s"
(quote tar) (quote filename) prog
in
let lines = external_command cmd in
match lines with
| [] ->

View File

@@ -29,8 +29,11 @@ val of_string : string -> string -> csum_t
Raise [Invalid_argument] if the checksum type is not known. *)
val verify_checksum : csum_t -> string -> unit
(** Verify the checksum of the file. *)
val verify_checksum : csum_t -> ?tar:string -> string -> unit
(** [verify_checksum type filename] Verify the checksum of the file.
When optional [tar] is used it is path to uncompressed tar archive
and the [filename] is a path in the tar archive. *)
val verify_checksums : csum_t list -> string -> unit
(** Verify all the checksums of the file. *)