summaryrefslogtreecommitdiffhomepage
path: root/subr/rtl_complex.subr
diff options
context:
space:
mode:
authorLucio Andrés Illanes Albornoz <lucio@lucioillanes.de>2020-06-26 02:00:46 +0100
committerLucio Andrés Illanes Albornoz <lucio@lucioillanes.de>2020-06-26 02:00:46 +0100
commit63d19cc87f7ea1a5888ab730394d622f58d9aa40 (patch)
tree0ee654240e070ca6bc77f782563e7b7d6a08a73b /subr/rtl_complex.subr
parentd574d8a084466ca169fc50d2494fb5a019344e98 (diff)
downloadmidipix_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.subr26
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