From b5652fcd3bd337f77f709935bd0d6158dd7a403d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=B6rg=20Sachse?= <Joerg.Sachse@slub-dresden.de>
Date: Tue, 21 Dec 2021 10:45:25 +0100
Subject: [PATCH] fix: install prerequisites for deep_fixity and check
 installation (thx @Steidl)

---
 tasks/install_test_scripts.yml | 37 ++++++++++++++++++++++++++++++----
 1 file changed, 33 insertions(+), 4 deletions(-)

diff --git a/tasks/install_test_scripts.yml b/tasks/install_test_scripts.yml
index 1126d2b..f4e27d3 100644
--- a/tasks/install_test_scripts.yml
+++ b/tasks/install_test_scripts.yml
@@ -9,6 +9,15 @@
       'libio-pty-perl',
     ]
     state: latest
+- name: install prerequisites for deep_fixity
+  apt:
+    name: "libdigest-crc-perl"
+    state: latest
+# This plugin is part of the community.general collection (version 4.0.2), which might not be installed on your computer.
+# https://docs.ansible.com/ansible/latest/collections/community/general/cpanm_module.html
+- name:
+  community.general.cpanm:
+    name: "Getopt::Long::Complete"
 
 - name: deploy wrapper script for exit strategy
   template:
@@ -41,8 +50,28 @@
     - dest: "rosettaDeepFixity/"
       repo: "git@{{ vault_slub_git_repo_fqdn }}:digital-preservation/rosettadeepfixity.git"
 
-- name: test if prerequisites for exit strategy script are installed
+- name: Perl syntax check for exit strategy script
   command: "perl -c /usr/local/bin/rosettaExitStrategy/perl/exit_strategy.pl"
-  register: depcheck
-  failed_when: "'syntax OK' not in depcheck.stderr"
-  changed_when: "depcheck.rc != 0"
+  register: depcheck_exit
+  failed_when: "'syntax OK' not in depcheck_exit.stderr"
+  changed_when: false
+- name: test if prerequisites for exit strategy script are installed
+  ansible.builtin.assert:
+    that:
+      - "'syntax OK' in depcheck_exit.stderr"
+      - "depcheck_exit.rc == 0"
+    fail_msg: "{{ depcheck_exit.stderr }}"
+    success_msg: "exit strategy script has all required prerequisites installed"
+
+- name: Perl syntax check for deep_fixity script
+  command: "perl -c /usr/local/bin/rosettaDeepFixity/deep_fixitycheck.pl"
+  register: depcheck_deep_fixity
+  failed_when: "'syntax OK' not in depcheck_deep_fixity.stderr"
+  changed_when: false
+- name: test if prerequisites for exit strategy script are installed
+  ansible.builtin.assert:
+    that:
+      - "'syntax OK' in depcheck_deep_fixity.stderr"
+      - "depcheck_deep_fixity.rc == 0"
+    fail_msg: "{{ depcheck_deep_fixity.stderr }}"
+    success_msg: "deep_fixity script has all required prerequisites installed"
-- 
GitLab