21-usersetup: check for existing /bin/zsh inside the chroot
[grml-live.git] / etc / grml / fai / config / scripts / GRMLBASE / 92-update-freshclam
index e34a707..3275bb1 100755 (executable)
@@ -7,24 +7,50 @@
 ################################################################################
 
 if ifclass NO_ONLINE ; then
-  echo "Ignoring script 91-update-pciids as NO_ONLINE is set."
+  echo "Ignoring script 92-update-freshclam as NO_ONLINE is set."
+  exit 0
+fi
+
+if ! ifclass FRESHCLAM ; then
+  echo "Ignoring script 92-update-freshclam as FRESHCLAM is NOT set."
+  echo "Executing freshclam increases the ISO for ~70MB, not considering as default."
   exit 0
 fi
 
 set -u
-set -e
+
+bailout() {
+  if [ "${1:-}" = "124" ] ; then
+    echo "Warning: freshclam returned with exit code 124." >&2
+
+    # be verbose in logs
+    echo "Warning: freshclam returned with exit code 124."
+    echo "-> This might happen when the incremental daily update failed to run, and"
+    echo "   retrieving the full daily.cvd failed as well."
+    echo "   This is known to be a problem in automated builds causing build errors."
+    echo "   Therefore we are ignoring this issue."
+    echo "   If a fresh clamav database is important for you, execute freshclam in the chroot."
+
+    exit 0
+  fi
+
+  exit "${1:-0}"
+}
 
 [ -x $target/usr/bin/timeout ] && TIMEOUT="10" || TIMEOUT=""
 
 if ! [ -x $target/usr/bin/freshclam ] ; then
   echo "freshclam not installed"
+  exit 0
+fi
+
+echo "Updating clamav database via running freshclam"
+if [ -n "$TIMEOUT" ] ; then
+   $ROOTCMD timeout $TIMEOUT /usr/bin/freshclam
+   bailout $?
 else
-  echo "Updating clamav database via running freshclam"
-  if [ -n "$TIMEOUT" ] ; then
-     $ROOTCMD timeout $TIMEOUT /usr/bin/freshclam
-  else
-     $ROOTCMD /usr/bin/freshclam
-  fi
+   $ROOTCMD /usr/bin/freshclam
+   bailout $?
 fi
 
 ## END OF FILE #################################################################