|
|
@ -32,25 +32,52 @@ elif [ -f "${serverfiles}" ]; then |
|
|
|
fi |
|
|
|
echo "" |
|
|
|
|
|
|
|
files=$(find "${serverfiles}" | wc -l) |
|
|
|
find "${serverfiles}" -type f -print0 | |
|
|
|
while IFS= read -r -d $'\0' line; do |
|
|
|
glibcversion=$(objdump -T "${line}" 2>/dev/null | grep -oP "GLIBC[^ ]+" | grep -v GLIBCXX | sort | uniq | sort -r --version-sort | head -n 1) |
|
|
|
if [ "${glibcversion}" ]; then |
|
|
|
echo "${glibcversion}: ${line}" >>"${tmpdir}/detect_glibc_files.tmp" |
|
|
|
|
|
|
|
local glibc_check_dir_array=( steamcmddir serverfiles ) |
|
|
|
for glibc_check_var in "${glibc_check_dir_array[@]}" |
|
|
|
do |
|
|
|
if [ "${glibc_check_var}" == "serverfiles" ]; then |
|
|
|
glibc_check_dir="${serverfiles}" |
|
|
|
glibc_check_name="${gamename}" |
|
|
|
elif [ "${glibc_check_var}" == "steamcmddir" ]; then |
|
|
|
glibc_check_dir="${steamcmddir}" |
|
|
|
glibc_check_name="SteamCMD" |
|
|
|
fi |
|
|
|
|
|
|
|
if [ -d "${glibc_check_dir}" ]; then |
|
|
|
glibc_check_files=$(find "${glibc_check_dir}" | wc -l) |
|
|
|
find "${glibc_check_dir}" -type f -print0 | |
|
|
|
while IFS= read -r -d $'\0' line; do |
|
|
|
glibcversion=$(objdump -T "${line}" 2>/dev/null | grep -oP "GLIBC[^ ]+" | grep -v GLIBCXX | sort | uniq | sort -r --version-sort | head -n 1) |
|
|
|
if [ "${glibcversion}" ]; then |
|
|
|
echo "${glibcversion}: ${line}" >>"${tmpdir}/detect_glibc_files_${glibc_check_var}.tmp" |
|
|
|
fi |
|
|
|
objdump -T "${line}" 2>/dev/null | grep -oP "GLIBC[^ ]+" >>"${tmpdir}/detect_glibc_${glibc_check_var}.tmp" |
|
|
|
echo -n "${i} / ${glibc_check_files}" $'\r' |
|
|
|
((i++)) |
|
|
|
done |
|
|
|
if [ -f "${tmpdir}/detect_glibc_files_${glibc_check_var}.tmp" ]; then |
|
|
|
echo "" |
|
|
|
echo "" |
|
|
|
echo "${glibc_check_name} GLIBC Requirements" |
|
|
|
echo "=================================" |
|
|
|
echo "Required GLIBC" |
|
|
|
cat "${tmpdir}/detect_glibc_${glibc_check_var}.tmp" | sort | uniq | sort -r --version-sort | head -1 |
|
|
|
echo "" |
|
|
|
echo "Files requiring GLIBC" |
|
|
|
echo "" |
|
|
|
echo "Highest verion required: filename" |
|
|
|
cat "${tmpdir}/detect_glibc_files_${glibc_check_var}.tmp" |
|
|
|
echo "" |
|
|
|
echo "All required GLIBC versions" |
|
|
|
cat "${tmpdir}/detect_glibc_${glibc_check_var}.tmp" | sort | uniq | sort -r --version-sort |
|
|
|
rm "${tmpdir}/detect_glibc_${glibc_check_var}.tmp" |
|
|
|
rm "${tmpdir}/detect_glibc_files_${glibc_check_var}.tmp" |
|
|
|
else |
|
|
|
fn_print_information_nl "GLIBC is not required" |
|
|
|
fi |
|
|
|
else |
|
|
|
fn_print_information_nl "${glibc_check_name} is not installed" |
|
|
|
fi |
|
|
|
objdump -T "${line}" 2>/dev/null | grep -oP "GLIBC[^ ]+" >>"${tmpdir}/detect_glibc.tmp" |
|
|
|
echo -n "${i} / ${files}" $'\r' |
|
|
|
((i++)) |
|
|
|
done |
|
|
|
if [ -f "${tmpdir}/detect_glibc_files.tmp" ]; then |
|
|
|
echo "" |
|
|
|
cat "${tmpdir}/detect_glibc_files.tmp" |
|
|
|
echo "" |
|
|
|
cat "${tmpdir}/detect_glibc.tmp" | sort | uniq | sort -r --version-sort |
|
|
|
rm "${tmpdir}/detect_glibc.tmp" |
|
|
|
rm "${tmpdir}/detect_glibc_files.tmp" |
|
|
|
else |
|
|
|
fn_print_information_nl "GLIBC is not required" |
|
|
|
fi |
|
|
|
core_exit.sh |
|
|
|