mirror of
https://github.com/libguestfs/libguestfs.git
synced 2026-03-22 07:03:38 +00:00
mllib: compute checksum of file inside tar
Signed-off-by: Tomáš Golembiovský <tgolembi@redhat.com>
This commit is contained in:
committed by
Pino Toscano
parent
e86b36a31c
commit
347e4b1648
@@ -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
|
||||
| [] ->
|
||||
|
||||
@@ -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. *)
|
||||
|
||||
Reference in New Issue
Block a user