Skip to content

Commit b36509c

Browse files
committed
use sb-md5 if on sbcl, otherwise improve error if missing md5sum
1 parent b714637 commit b36509c

1 file changed

Lines changed: 11 additions & 3 deletions

File tree

ql-https.lisp

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -48,10 +48,18 @@
4848
(end (position #\/ url :start start)))
4949
(subseq url start end))))
5050

51+
#+sbcl
5152
(defun md5 (file)
5253
"Returns md5sum of FILE"
53-
(uiop:run-program (format nil "md5sum \"~A\" | cut -d' ' -f 1" file)
54-
:output '(:string :stripped t)))
54+
(require 'sb-md5)
55+
(format nil "~{~2,'0x~}" (coerce (sb-md5:md5sum-file file) 'list)))
56+
57+
#-sbcl
58+
(defun md5 (file)
59+
"Returns md5sum of FILE"
60+
(let* ((output (uiop:run-program (list "md5sum" file) :output :string))
61+
(space-pos (position #\Space output)))
62+
(subseq output 0 space-pos)))
5563

5664
(defun file-size (file)
5765
"Returns the size of FILE in bytes"
@@ -62,7 +70,7 @@
6270
"Checks that the md5 and size of FILE are as expected from the quicklisp
6371
dist."
6472
(let ((release (ql-dist:find-release name)))
65-
(unless (string= (ql-dist:archive-md5 release) (md5 file))
73+
(unless (string-equal (ql-dist:archive-md5 release) (md5 file))
6674
(error "md5 mismatch for ~A" name))
6775
(unless (= (ql-dist:archive-size release) (file-size file))
6876
(error "file size mismatch for ~A" name))))

0 commit comments

Comments
 (0)