updated check_md5_for_changed_conf_and_ini_files() and began to fix copy()

This commit is contained in:
Gerhard Hoffmann 2022-06-02 22:28:03 +02:00
parent 74c8358a99
commit 54ad30752e

View File

@ -36,17 +36,21 @@ copy () {
readarray -td' ' files <<< "$1" readarray -td' ' files <<< "$1"
for f in ${files[@]}; do for f in ${files[@]}; do
if grep -qE "^.*[.]conf.*$" <<< ${f}; then if [ "$f" = "update.conf" ] || [ "$f" = "current.conf" ]; then
continue
fi
if grep -qE "^.*[.]conf\s*$" <<< ${f}; then
local __f="${psa_config_dir}/${f}" local __f="${psa_config_dir}/${f}"
if ! cp ${__f} /etc/psa_config; then if ! cp ${__f} /etc/psa_config; then
log_error "$func:${LINENO}: cannot cp ${__f} /etc/psa_config" log_error "$func:${LINENO}: cannot cp ${__f} /etc/psa_config"
return 1 return 1
fi fi
log_info "$func:${LINENO}: copied $f to /etc/psa_config" log_info "$func:${LINENO}: copied $f to /etc/psa_config"
# elif grep -qE "^.*[.]ini.*$" <<< ${f}; then elif grep -qE "^.*[.]ini\s*$" <<< ${f}; then
# if ! cp ${f} $psa_ini; then # TODO
# return 1 set -x
# fi :
set +x
fi fi
done done
@ -56,46 +60,83 @@ copy () {
filter_system_files () { filter_system_files () {
local func="${FUNCNAME[0]}" local func="${FUNCNAME[0]}"
log_debug "$func:${LINENO} $1"
readarray -td' ' files <<< "$1" readarray -td' ' files <<< "$1"
local __system_files="" local __system_files=""
for f in ${files[@]}; do for f in ${files[@]}; do
case "$f" in if grep -qE "^.*[.](conf|ini)\s*$" <<< $f; then
("emp.conf"|"printer.conf"|"device.conf") if [ -z $__system_files ]; then
__system_files+="${f} " __system_files="${f}"
;; else
esac __system_files="$__system_files ${f}"
fi
fi
done done
log_debug "$func:${LINENO} system-files=$__system_files" log_debug "$func:${LINENO} system-files=$__system_files"
printf '%s' "$__system_files" printf '%s' "$__system_files"
} }
#
md5_of () {
printf '%s' "$(md5sum "$1" | cut -d' ' -f1)"
}
# Check if the fetched/merged files have the correct md5 and are # Check if the fetched/merged files have the correct md5 and are
# valid for the PSA. # valid for the PSA.
# #
check_md5_for_changed_conf_and_ini_files () { check_md5_for_changed_conf_and_ini_files () {
local func="${FUNCNAME[0]}" local func="${FUNCNAME[0]}"
local json_key="" local js_key="" # used by json-parser 'jq'
local md5sum_update_conf="" local md5sum_update_conf=""
local md5sum_repository="" local md5sum_repository=""
local readonly cut_md5="cut -d' ' -f1"
log_debug "$func:${LINENO} files=$1" log_debug "$func:${LINENO} files=$1"
if ! [ -z $1 ]; then if ! [ -z $1 ]; then
readarray -td' ' files <<< "$1" readarray -td' ' files <<< "$1"
for file in ${files[@]}; do for file in ${files[@]}; do
log_debug "$func:${LINENO} file=$file"
if [ "$file" = "emp.conf" ]; then if [ "$file" = "emp.conf" ]; then
json_key=".conf.szeged.zg[1].z[1].etc.psa_config.emp" js_key=".conf.szeged.zg[1].z[1].etc.psa_config.emp"
md5sum_update_conf=$(cat $update_conf | jq -r $json_key) md5sum_update_conf=$(cat $update_conf | jq -r $js_key)
md5sum_repository="$(md5sum $emp_conf | awk '{ print $1}')" md5sum_repository="$(md5_of $emp_conf)"
elif [ "$file" = "printer.conf" ]; then elif [ "$file" = "printer.conf" ]; then
json_key=".conf.szeged.zg[1].z[1].etc.psa_config.printer" js_key=".conf.szeged.zg[1].z[1].etc.psa_config.printer"
md5sum_update_conf=$(cat $update_conf | jq -r $json_key) md5sum_update_conf=$(cat $update_conf | jq -r $js_key)
md5sum_repository="$(md5sum $printer_conf | awk '{ print $1}')" md5sum_repository="$(md5_of $printer_conf)"
elif [ "$file" = "device.conf" ]; then elif [ "$file" = "device.conf" ]; then
json_key=".conf.szeged.zg[1].z[1].etc.psa_config.device" js_key=".conf.szeged.zg[1].z[1].etc.psa_config.device"
md5sum_update_conf=$(cat $update_conf | jq -r $json_key) md5sum_update_conf=$(cat $update_conf | jq -r $js_key)
md5sum_repository="$(md5sum $device_conf | awk '{ print $1}')" md5sum_repository="$(md5_of $device_conf)"
elif [ "$file" = "ATBQT.ini" ]; then
js_key=".ini.szeged.zg[1].z[1].opt.app.ATBQT.ATBQT"
md5sum_update_conf=$(cat $update_conf | jq -r $js_key)
md5sum_repository="$(md5_of $atbqt_ini)"
elif [ "$file" = "sysconfig.ini" ]; then
js_key=".ini.szeged.zg[1].z[1].opt.app.sysconfig.sysconfig"
md5sum_update_conf=$(cat $update_conf | jq -r $js_key)
md5sum_repository=$(md5_of $sysconfig_sysconfig_ini)
elif [ "$file" = "SystemControl.ini" ]; then
js_key=".ini.szeged.zg[1].z[1].opt.app.sysconfig.SystemControl"
md5sum_update_conf=$(cat $update_conf | jq -r $js_key)
md5sum_repository=$(md5_of $sysconfig_sysctrl_ini)
elif [ "$file" = "ISMASMgr.ini" ]; then
js_key=".ini.szeged.zg[1].z[1].opt.app.ISMASMgr.ISMASMgr"
md5sum_update_conf=$(cat $update_conf | jq -r $js_key)
md5sum_repository=$(md5_of $ismasmgr_ismasmgr_ini)
if [ "$md5sum_repository" = "$md5sum_update_conf" ]; then
log_info "$func:${LINENO}: md5sum for $file ok"
else
local __r="repository: $md5sum_repository"
local __u="update.conf=$md5sum_update_conf"
local __m="$__r != $__u"
log_error "$func:${LINENO}: md5sum for $file wrong: $__m"
return 1
fi
js_key=".ini.szeged.zg[1].z[1].opt.app.sysconfig.ISMASMgr"
md5sum_update_conf=$(cat $update_conf | jq -r $js_key)
md5sum_repository=$(md5_of $sysconfig_ismasmgr_ini)
else else
continue continue
fi fi