B:BD[
5.2420] → [
5.2420:3735]
(let* ((sum (ironclad:byte-array-to-hex-string
(ironclad:digest-file :sha256 file)))
(file-id
(progn
(sqlite:execute-single
db "insert into files (name) values (?) on conflict do nothing" file)
(sqlite:execute-single db "select rowid from files where name = ?" file)))
(sum-id
(progn
(sqlite:execute-single
db "insert into shasums (sum) values (?) on conflict do nothing" sum)
(sqlite:execute-single db "select rowid from shasums where sum = ?" sum))))
(sqlite:execute-single db
"insert into files_shasums (file,shasum) values (?,?)
on conflict do nothing"
file-id
sum-id)
(format t "Done with file ~s, sum: ~s~%" file sum))))))
(with-open-file (s file :element-type '(unsigned-byte 8))
(let* ((sum (ironclad:byte-array-to-hex-string
(ironclad:digest-file :sha256 file)))
(length (file-length s)))
(sqlite:execute-single db
"insert into files_shasums (file,shasum,size)
values (?,?,?)
on conflict do nothing"
(namestring (truename file))
sum
length)))))))