SYS.FILE_CHECKSUM compute checksum of file
function [hash, cmd] = file_checksum(file, hash_method) switch lower(hash_method) case {"sha-256", "sha256"} if ismac() cmd = sprintf('shasum --algorithm 256 --binary "%s"', file); elseif ispc() cmd = sprintf('CertUtil -hashfile "%s" SHA256', file); else cmd = sprintf('sha256sum --binary "%s"', file); end case "md5" if ismac() cmd = sprintf('md5 -r "%s"', file); elseif ispc() cmd = sprintf('CertUtil -hashfile "%s" MD5', file); else cmd = sprintf('md5sum "%s"', file); end otherwise, error('unhandled hash method %s', hash_method) end [s, m] = system(cmd); if s ~= 0 hash = ''; return end switch lower(hash_method) case {"sha-256", "sha256"} hash = regexp(m, '^\w{64}','match','once','lineanchors'); case "md5" hash = regexp(m, '^\w{32}','match','once','lineanchors'); end end