#!/bin/bash # command_dev_detect_ldd.sh function # Author: Daniel Gibbs # Website: https://linuxgsm.com # Description: Automatically detects required deps using ldd. # Can check a file or directory recursively. local commandname="DETECT-LDD" local commandaction="Detect-LDD" local function_selfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")" echo -e "=================================" echo -e "Shared Object dependencies Checker" echo -e "=================================" if [ -z "${serverfiles}" ]; then dir="$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")" fi if [ -d "${serverfiles}" ]; then echo -e "Checking directory: " echo -e "${serverfiles}" elif [ -f "${serverfiles}" ]; then echo -e "Checking file: " echo -e "${serverfiles}" fi echo -e "" files=$(find "${serverfiles}" | wc -l) find "${serverfiles}" -type f -print0 | while IFS= read -r -d $'\0' line; do if ldd "${line}" 2>/dev/null | grep -v "not a dynamic executable" then echo -e "${line}" >> "${tmpdir}/detect_ldd.tmp" ldd "${line}" 2>/dev/null | grep -v "not a dynamic executable" >> "${tmpdir}/detect_ldd.tmp" if ldd "${line}" 2>/dev/null | grep -v "not a dynamic executable" | grep "not found" then echo -e "${line}" >> "${tmpdir}/detect_ldd_not_found.tmp" ldd "${line}" 2>/dev/null | grep -v "not a dynamic executable" | grep "not found" >> "${tmpdir}/detect_ldd_not_found.tmp" fi fi echo -n "$i / $files" $'\r' ((i++)) done echo -e "" echo -e "" echo -e "All" echo -e "=================================" cat "${tmpdir}/detect_ldd.tmp" echo -e "" echo -e "Not Found" echo -e "=================================" cat "${tmpdir}/detect_ldd_not_found.tmp" rm "${tmpdir}/detect_ldd.tmp" rm "${tmpdir}/detect_ldd_not_found.tmp" core_exit.sh