diff options
author | Lucio Andrés Illanes Albornoz <lucio@lucioillanes.de> | 2020-06-26 02:00:46 +0100 |
---|---|---|
committer | Lucio Andrés Illanes Albornoz <lucio@lucioillanes.de> | 2020-06-26 02:00:46 +0100 |
commit | 63d19cc87f7ea1a5888ab730394d622f58d9aa40 (patch) | |
tree | 0ee654240e070ca6bc77f782563e7b7d6a08a73b /subr/rtl_complex.subr | |
parent | d574d8a084466ca169fc50d2494fb5a019344e98 (diff) | |
download | midipix_build-63d19cc87f7ea1a5888ab730394d622f58d9aa40.tar.bz2 midipix_build-63d19cc87f7ea1a5888ab730394d622f58d9aa40.tar.xz |
subr/rtl_fetch.subr:rtl_fetch_url_wget(): retain digest post-download & forcibly re-download on mismatch (via midipix.)
subr/rtl_complex.subr:rtl_check_digest{,_file}(): initial implementation.
Diffstat (limited to 'subr/rtl_complex.subr')
-rw-r--r-- | subr/rtl_complex.subr | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/subr/rtl_complex.subr b/subr/rtl_complex.subr index 63175bed..4894e0f6 100644 --- a/subr/rtl_complex.subr +++ b/subr/rtl_complex.subr @@ -2,6 +2,32 @@ # set +o errexit -o noglob -o nounset is assumed. # +rtl_check_digest() { + local _fname="${1}" _digest_check="${2}" _digest=""; RTL_CHECK_DIGEST_DIGEST=""; + if ! [ -e "${_fname}" ]; then + return 1; + else set -- $(sha256sum "${_fname}"); + RTL_CHECK_DIGEST_DIGEST="${1}"; + if [ "${RTL_CHECK_DIGEST_DIGEST}" = "${_digest_check}" ]; then + return 0; + else + return 1; + fi; + fi; +}; + +rtl_check_digest_file() { + local _fname="${1}" _digest_check="${2}" _digest_fname="${3}" _digest="" RTL_CHECK_DIGEST_DIGEST=""; + if ! [ -e "${_digest_fname}" ]; then + return 1; + else _digest="$(cat "${_digest_fname}")"; + if [ "${_digest}" != "${_digest_check}" ]\ + || ! rtl_check_digest "${_fname}" "${_digest_check}"; then + return 1; + fi; + fi; +}; + rtl_check_path_vars() { local _vnames="${1}" _rc=0 _vname="" _vname_val=""; _status=""; for _vname in ${_vnames}; do |