+ if exectest lsscsi ; then
+ lsscsi > ./lsscsi 2>./lsscsi.error
+ lsscsi -t > ./lsscsi_transport 2>./lsscsi_transport.error
+ fi
+
+ for disk in $disklist; do
+ if exectest sfdisk && [[ -b "/dev/${disk}" ]] ; then
+ sfdisk -d "/dev/${disk}" > "./sfdisk_${disk}" 2>"./sfdisk_${disk}.error"
+ fi
+
+ if exectest smartctl ; then
+ echo -e "smartctl -a /dev/${disk}:\n" >> smartctl
+ smartctl -a "/dev/$disk" >> ./smartctl
+ echo -e "\n\n" >> ./smartctl
+ fi
+
+ if exectest hdparm ; then
+ echo -e "hdparm -iv /dev/${disk}:\n" >> hdparm
+ hdparm -iv "/dev/$disk" >> ./hdparm 2>> ./hdparm.error
+ echo -e "\n\n" >> hdparm
+ fi
+
+ if exectest fdisk ; then
+ echo -e "fdisk -lu /dev/${disk}:\n" >> fdisk
+ fdisk -lu "/dev/$disk" >> ./fdisk 2>> ./fdisk.error
+ echo -e "\n\n" >> fdisk
+ fi
+
+ if exectest parted ; then
+ echo -e "parted -s /dev/${disk}:\n" >> parted
+ parted -s "/dev/$disk" print >> ./parted
+ echo -e "\n\n" >> parted
+ fi
+
+ if exectest sdparm ; then
+ echo -e "sdparm --all --long /dev/${disk}:\n" >> sdparm
+ sdparm --all --long "/dev/$disk" >> ./sdparm
+ echo -e "\n\n" >> sdparm
+ fi
+
+ if exectest sg_inq ; then
+ echo -e "sg_inq /dev/${disk}:\n" >> sg_inq
+ sg_inq "/dev/$disk" >> ./sg_inq 2>> ./sg_inq.error
+ echo -e "\n\n" >> sg_inq
+ fi
+
+ file -s "/dev/${disk}"?* | grep -v ": empty" >> file_disk
+ done
+ fi
+)
+
+# get rid of empty files
+for file in *.error ; do
+ test -s "$file" || rm -- "$file"
+done
+
+$_opt_quiet || echo
+
+cd "${WORKING_DIR}"
+
+# create tarball
+if [ -n "$GENERATE_FILE" ] ; then
+ tar acf "${OUTFILE}" "${OUTDIRNAME}"
+ if ! $_opt_quiet ; then
+ # shellcheck disable=SC2012
+ [ -r "$OUTFILE" ] && echo "$OUTFILE ($(ls -ahl -- "$OUTFILE" | awk '{print $5}')) has been generated."
+ fi
+fi
+
+# remove (temporary) output directory if needed, else keep it, as it doubles
+# as the real output directory.
+if [ -z "$GENERATE_DIRECTORY" ] ; then
+ rm -r "${OUTDIR}"