From 8381453d61cc82608b228432763e7a56bc1c9e22 Mon Sep 17 00:00:00 2001
From: Andreas Romeyke <andreas.romeyke@slub-dresden.de>
Date: Fri, 19 Jul 2024 14:28:54 +0200
Subject: [PATCH] - fixed file escaping

---
 src/usr/local/bin/validate_workflow.sh | 64 +++++++++++++-------------
 1 file changed, 33 insertions(+), 31 deletions(-)

diff --git a/src/usr/local/bin/validate_workflow.sh b/src/usr/local/bin/validate_workflow.sh
index cd2e0b9..aa08488 100755
--- a/src/usr/local/bin/validate_workflow.sh
+++ b/src/usr/local/bin/validate_workflow.sh
@@ -94,36 +94,36 @@ declare -A validators
 # filetype has max 4 chars
 # stage has max 9 chars
 # each validator should return true if file was valid
-validators[__mediathek_mka__current]="/usr/local/bin/mediaconch_validation_wrapper.sh -ft -p /usr/local/etc/SLUB_mediaconch_policy_all.xml FILE"
-validators[__mediathek_mka_upcoming]="/usr/local/bin/mediaconch_validation_wrapper.sh -ft -p /usr/local/etc/SLUB_mediaconch_policy_all.xml FILE"
-validators[_______save_mkv__current]="/usr/local/bin/mediaconch_validation_wrapper.sh -ft -p /usr/local/etc/SLUB_mediaconch_policy_all.xml FILE"
-validators[_______save_mkv_upcoming]="/usr/local/bin/mediaconch_validation_wrapper.sh -ft -p /usr/local/etc/SLUB_mediaconch_policy_all.xml FILE"
-validators[_______save_mka__current]="/usr/local/bin/mediaconch_validation_wrapper.sh -ft -p /usr/local/etc/SLUB_mediaconch_policy_all.xml FILE"
-validators[_______save_mka_upcoming]="/usr/local/bin/mediaconch_validation_wrapper.sh -ft -p /usr/local/etc/SLUB_mediaconch_policy_all.xml FILE"
-validators[________ddz_tif__current]="/usr/bin/checkit_tiff_current /usr/local/etc/cit_tiff6_baseline_SLUB_current.cfg FILE"
-validators[________ddz_tif_upcoming]="/usr/bin/checkit_tiff_upcoming /usr/local/etc/cit_tiff6_baseline_SLUB_upcoming.cfg FILE"
-validators[______digas_tif__current]="/usr/bin/checkit_tiff_current /usr/local/etc/cit_tiff6_geotiff_SLUB_current.cfg FILE"
-validators[______digas_tif_upcoming]="/usr/bin/checkit_tiff_upcoming /usr/local/etc/cit_tiff6_geotiff_SLUB_upcoming.cfg FILE"
-validators[___fotothek_tif__current]="/usr/bin/checkit_tiff_current /usr/local/etc/cit_tiff_retrofotos_SLUB_current.cfg FILE"
-validators[___fotothek_tif_upcoming]="/usr/bin/checkit_tiff_upcoming /usr/local/etc/cit_tiff_retrofotos_SLUB_upcoming.cfg FILE"
-validators[________ddz_icc__current]="/usr/local/bin/iccDumpProfile_validation_wrapper.sh FILE"
-validators[________ddz_icc_upcoming]="/usr/local/bin/iccDumpProfile_validation_wrapper.sh FILE"
-validators[__retromono_tif_upcoming]="/usr/bin/checkit_tiff_upcoming -mq /usr/share/checkit_tiff_upcoming/example_configs/cit_tiff6_baseline_SLUB.cfg FILE"
-validators[__retromono_tif__current]="/usr/bin/checkit_tiff_current -mq /usr/share/checkit_tiff_current/example_configs/cit_tiff6_baseline_SLUB.cfg FILE"
-validators[retromonoge_tif_upcoming]="/usr/bin/checkit_tiff_upcoming -mq /usr/share/checkit_tiff_upcoming/example_configs/cit_tiff6_geotiff_SLUB.cfg FILE"
-validators[retromonoge_tif__current]="/usr/bin/checkit_tiff_current -mq /usr/share/checkit_tiff_current/example_configs/cit_tiff6_geotiff_SLUB.cfg FILE"
-validators[__retrofoto_tif_upcoming]="/usr/bin/checkit_tiff_upcoming -mq /usr/share/checkit_tiff_upcoming/example_configs/cit_tiff_retrofotos_SLUB.cfg FILE"
-validators[__retrofoto_tif__current]="/usr/bin/checkit_tiff_current -mq /usr/share/checkit_tiff_current/example_configs/cit_tiff_retrofotos_SLUB.cfg FILE"
-validators[_pubpflicht_pdf_upcoming]="/usr/local/bin/verapdf_validation_wrapper.sh FILE"
-validators[_pubpflicht_pdf__current]="/usr/local/bin/verapdf_validation_wrapper.sh FILE"
-validators[pubhtmljats_xml_upcoming]="/usr/bin/java -cp /usr/share/java/xml_plugin4rosetta/*:/usr/share/java/commons-cli.jar org.slub.rosetta.dps.repository.plugin.XmlFormatValidationPlugin --dtd-catalog /etc/xml/slub/slub_dtd_catalog.xml --schema-catalog /etc/xml/slub/slub_schema_catalog.xml --debug FILE"
-validators[pubhtmljats_xml__current]="/usr/bin/java -cp /usr/share/java/xml_plugin4rosetta/*:/usr/share/java/commons-cli.jar org.slub.rosetta.dps.repository.plugin.XmlFormatValidationPlugin --dtd-catalog /etc/xml/slub/slub_dtd_catalog.xml --schema-catalog /etc/xml/slub/slub_schema_catalog.xml --debug FILE"
-validators[__forensdta_ewf_upcoming]="/usr/bin/ewfverify -v FILE"
-validators[__forensdta_ewf__current]="/usr/bin/ewfverify -v FILE"
-validators[_retromuenz_tif_upcoming]="/usr/bin/checkit_tiff_upcoming -mq /usr/share/checkit_tiff_upcoming/example_configs/cit_tiff_retrofotos_SLUB.cfg FILE"
-validators[_retromuenz_tif__current]="/usr/bin/checkit_tiff_current -mq /usr/share/checkit_tiff_current/example_configs/cit_tiff_retrofotos_SLUB.cfg FILE"
-validators[____retrovf_mkv__current]="/usr/local/bin/mediaconch_validation_wrapper.sh -ft -p /usr/local/etc/mediaconch/SLUB_mediaconch_policy_all.xml FILE"
-validators[____retrovf_mkv_upcoming]="/usr/local/bin/mediaconch_validation_wrapper.sh -ft -p /usr/local/etc/mediaconch/SLUB_mediaconch_policy_all.xml FILE"
+validators[__mediathek_mka__current]="/usr/local/bin/mediaconch_validation_wrapper.sh -ft -p /usr/local/etc/SLUB_mediaconch_policy_all.xml \"FILE\""
+validators[__mediathek_mka_upcoming]="/usr/local/bin/mediaconch_validation_wrapper.sh -ft -p /usr/local/etc/SLUB_mediaconch_policy_all.xml \"FILE\""
+validators[_______save_mkv__current]="/usr/local/bin/mediaconch_validation_wrapper.sh -ft -p /usr/local/etc/SLUB_mediaconch_policy_all.xml \"FILE\""
+validators[_______save_mkv_upcoming]="/usr/local/bin/mediaconch_validation_wrapper.sh -ft -p /usr/local/etc/SLUB_mediaconch_policy_all.xml \"FILE\""
+validators[_______save_mka__current]="/usr/local/bin/mediaconch_validation_wrapper.sh -ft -p /usr/local/etc/SLUB_mediaconch_policy_all.xml \"FILE\""
+validators[_______save_mka_upcoming]="/usr/local/bin/mediaconch_validation_wrapper.sh -ft -p /usr/local/etc/SLUB_mediaconch_policy_all.xml \"FILE\""
+validators[________ddz_tif__current]="/usr/bin/checkit_tiff_current /usr/local/etc/cit_tiff6_baseline_SLUB_current.cfg \"FILE\""
+validators[________ddz_tif_upcoming]="/usr/bin/checkit_tiff_upcoming /usr/local/etc/cit_tiff6_baseline_SLUB_upcoming.cfg \"FILE\""
+validators[______digas_tif__current]="/usr/bin/checkit_tiff_current /usr/local/etc/cit_tiff6_geotiff_SLUB_current.cfg \"FILE\""
+validators[______digas_tif_upcoming]="/usr/bin/checkit_tiff_upcoming /usr/local/etc/cit_tiff6_geotiff_SLUB_upcoming.cfg \"FILE\""
+validators[___fotothek_tif__current]="/usr/bin/checkit_tiff_current /usr/local/etc/cit_tiff_retrofotos_SLUB_current.cfg \"FILE\""
+validators[___fotothek_tif_upcoming]="/usr/bin/checkit_tiff_upcoming /usr/local/etc/cit_tiff_retrofotos_SLUB_upcoming.cfg \"FILE\""
+validators[________ddz_icc__current]="/usr/local/bin/iccDumpProfile_validation_wrapper.sh \"FILE\""
+validators[________ddz_icc_upcoming]="/usr/local/bin/iccDumpProfile_validation_wrapper.sh \"FILE\""
+validators[__retromono_tif_upcoming]="/usr/bin/checkit_tiff_upcoming -mq /usr/share/checkit_tiff_upcoming/example_configs/cit_tiff6_baseline_SLUB.cfg \"FILE\""
+validators[__retromono_tif__current]="/usr/bin/checkit_tiff_current -mq /usr/share/checkit_tiff_current/example_configs/cit_tiff6_baseline_SLUB.cfg \"FILE\""
+validators[retromonoge_tif_upcoming]="/usr/bin/checkit_tiff_upcoming -mq /usr/share/checkit_tiff_upcoming/example_configs/cit_tiff6_geotiff_SLUB.cfg \"FILE\""
+validators[retromonoge_tif__current]="/usr/bin/checkit_tiff_current -mq /usr/share/checkit_tiff_current/example_configs/cit_tiff6_geotiff_SLUB.cfg \"FILE\""
+validators[__retrofoto_tif_upcoming]="/usr/bin/checkit_tiff_upcoming -mq /usr/share/checkit_tiff_upcoming/example_configs/cit_tiff_retrofotos_SLUB.cfg \"FILE\""
+validators[__retrofoto_tif__current]="/usr/bin/checkit_tiff_current -mq /usr/share/checkit_tiff_current/example_configs/cit_tiff_retrofotos_SLUB.cfg \"FILE\""
+validators[_pubpflicht_pdf_upcoming]="/usr/local/bin/verapdf_validation_wrapper.sh \"FILE\""
+validators[_pubpflicht_pdf__current]="/usr/local/bin/verapdf_validation_wrapper.sh \"FILE\""
+validators[pubhtmljats_xml_upcoming]="/usr/bin/java -cp /usr/share/java/xml_plugin4rosetta/*:/usr/share/java/commons-cli.jar org.slub.rosetta.dps.repository.plugin.XmlFormatValidationPlugin --dtd-catalog /etc/xml/slub/slub_dtd_catalog.xml --schema-catalog /etc/xml/slub/slub_schema_catalog.xml --debug \"FILE\""
+validators[pubhtmljats_xml__current]="/usr/bin/java -cp /usr/share/java/xml_plugin4rosetta/*:/usr/share/java/commons-cli.jar org.slub.rosetta.dps.repository.plugin.XmlFormatValidationPlugin --dtd-catalog /etc/xml/slub/slub_dtd_catalog.xml --schema-catalog /etc/xml/slub/slub_schema_catalog.xml --debug \"FILE\""
+validators[__forensdta_ewf_upcoming]="/usr/bin/ewfverify -v \"FILE\""
+validators[__forensdta_ewf__current]="/usr/bin/ewfverify -v \"FILE\""
+validators[_retromuenz_tif_upcoming]="/usr/bin/checkit_tiff_upcoming -mq /usr/share/checkit_tiff_upcoming/example_configs/cit_tiff_retrofotos_SLUB.cfg \"FILE\""
+validators[_retromuenz_tif__current]="/usr/bin/checkit_tiff_current -mq /usr/share/checkit_tiff_current/example_configs/cit_tiff_retrofotos_SLUB.cfg \"FILE\""
+validators[____retrovf_mkv__current]="/usr/local/bin/mediaconch_validation_wrapper.sh -ft -p /usr/local/etc/mediaconch/SLUB_mediaconch_policy_all.xml \"FILE\""
+validators[____retrovf_mkv_upcoming]="/usr/local/bin/mediaconch_validation_wrapper.sh -ft -p /usr/local/etc/mediaconch/SLUB_mediaconch_policy_all.xml \"FILE\""
 
 
 set -o nounset                              # Treat unset variables as an error
@@ -463,7 +463,9 @@ exec_cmd() {
     touch "${log}"
     chmod o+w "${log}"
     debug "scan_file, calling cmd='${cmd}'"
-    eval "${cmd} >>\"${log}\" 2>&1"
+    local ev_cmd="${cmd} >>\"${log}\" 2>&1"
+    debug "scan_file, calling cmd='${ev_cmd}'"
+    eval "${ev_cmd}"
     local is_valid=$?
     check_argument_notempty "${is_valid}"
     stop_t=$(date +"%s")
-- 
GitLab