Przeglądaj źródła

Improvements to dev features

deps detect now checks all files rather than just the executable file
Daniel Gibbs 9 lat temu
rodzic
commit
2d8cc127ff

+ 29 - 46
lgsm/functions/command_dev_detect_deps.sh

@@ -8,32 +8,11 @@ local commandname="DEPS-DETECT"
 local commandaction="Deps-Detect"
 local function_selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
 
-check.sh
-cd "${executabledir}"
-if [ "${executable}" ==  "./hlds_run" ]; then
-	executable=hlds_linux
-elif [ "${executable}" ==  "./srcds_run" ]||[ "${executable}" ==  "./dabds.sh" ]||[ "${executable}" ==  "./srcds_run.sh" ]; then
-	executable=srcds_linux
-elif [ "${executable}" ==  "./server_linux32" ]; then
-	executable=libSpark_Core.so
-elif [ "${executable}" ==  "./runSam3_DedicatedServer.sh" ]; then
-	executable=Sam3_DedicatedServer
-elif [ "${executable}" ==  "./7DaysToDie.sh" ]; then
-	executable=7DaysToDie.x86
-elif [ "${executable}" ==  "./ucc-bin" ]; then
-
-	if [ -f "${executabledir}/ucc-bin-real" ]; then
-		executable=ucc-bin-real
-	elif [ -f "${executabledir}/ut2004-bin" ]; then
-		executable=ut2004-bin
-	else
-		executable=ut-bin
-	fi
-
-elif [ "${executable}" ==  "./ts3server_startscript.sh" ]; then
-	executable=ts3server_linux_amd64
-fi
-
+echo "================================="
+echo "Dependencies Checker"
+echo "================================="
+echo "Checking directory: "
+echo "${filesdir}"
 if [ "$(command -v eu-readelf 2>/dev/null)" ]; then
 	readelf=eu-readelf
 elif [ "$(command -v readelf 2>/dev/null)" ]; then
@@ -42,29 +21,34 @@ else
 	echo "readelf/eu-readelf not installed"
 fi
 
-${readelf} -d ${executable} |grep NEEDED|awk '{ print $5 }'|sed 's/\[//g'|sed 's/\]//g' > "${tmpdir}/.depdetect_readelf"
+files=$(find ${filesdir} | wc -l)
+find "${filesdir}" -type f -print0 |
+while IFS= read -r -d $'\0' line; do
+	${readelf} -d "${line}" 2>/dev/null|grep NEEDED|awk '{ print $5 }'|sed 's/\[//g;s/\]//g' >> "${tmpdir}/.depdetect_readelf"
+	echo -n "${i} / ${files}" $'\r'
+	((i++))
+done
 
+sort "${tmpdir}/.depdetect_readelf" |uniq >"${tmpdir}/.depdetect_readelf_uniq"
 
-echo "yum install " > "${tmpdir}/.depdetect_centos_list_uniq"
-echo "apt-get install " > "${tmpdir}/.depdetect_ubuntu_list_uniq"
-echo "apt-get install " > "${tmpdir}/.depdetect_debian_list_uniq"
 while read lib; do
-	sharedlib=${lib}
-	if [ "${lib}" == "libm.so.6" ]||[ "${lib}" == "libc.so.6" ]||[ "${lib}" == "libpthread.so.0" ]||[ "${lib}" == "libdl.so.2" ]||[ "${lib}" == "libnsl.so.1" ]||[ "${lib}" == "libgcc_s.so.1" ]||[ "${lib}" == "librt.so.1" ]||[ "${lib}" == "ld-linux.so.2" ]; then
+
+	if [ "${lib}" == "libm.so.6" ]||[ "${lib}" == "libc.so.6" ]||[ "${lib}" == "libtcmalloc_minimal.so.4" ]||[ "${lib}" == "libpthread.so.0" ]||[ "${lib}" == "libdl.so.2" ]||[ "${lib}" == "libnsl.so.1" ]||[ "${lib}" == "libgcc_s.so.1" ]||[ "${lib}" == "librt.so.1" ]||[ "${lib}" == "ld-linux.so.2" ]; then
 		echo "glibc.i686" >> "${tmpdir}/.depdetect_centos_list"
 		echo "lib32gcc1" >> "${tmpdir}/.depdetect_ubuntu_list"
 		echo "lib32gcc1" >> "${tmpdir}/.depdetect_debian_list"
-
 	elif [ "${lib}" == "libstdc++.so.6" ]; then
 		echo "libstdc++.i686" >> "${tmpdir}/.depdetect_centos_list"
 		echo "libstdc++6:i386" >> "${tmpdir}/.depdetect_ubuntu_list"
 		echo "libstdc++6:i386" >> "${tmpdir}/.depdetect_debian_list"
-
 	elif [ "${lib}" == "libstdc++.so.5" ]; then
 		echo "compat-libstdc++-33.i686" >> "${tmpdir}/.depdetect_centos_list"
 		echo "libstdc++5:i386" >> "${tmpdir}/.depdetect_ubuntu_list"
 		echo "libstdc++5:i386" >> "${tmpdir}/.depdetect_debian_list"
-
+	elif [ "${lib}" == "libcurl-gnutls.so.4" ]; then
+		echo "libcurl.i686" >> "${tmpdir}/.depdetect_centos_list"
+		echo "libcurl4-gnutls-dev:i386" >> "${tmpdir}/.depdetect_ubuntu_list"
+		echo "libcurl4-gnutls-dev:i386" >> "${tmpdir}/.depdetect_debian_list"
 	elif [ "${lib}" == "libspeex.so.1" ]||[ "${lib}" == "libspeexdsp.so.1" ]; then
 		echo "speex.i686" >> "${tmpdir}/.depdetect_centos_list"
 		echo "speex:i386" >> "${tmpdir}/.depdetect_ubuntu_list"
@@ -80,14 +64,17 @@ while read lib; do
 		echo "libtbb2" >> "${tmpdir}/.depdetect_ubuntu_list"
 		echo "libtbb2" >> "${tmpdir}/.depdetect_debian_list"
 
-	elif [ "${lib}" == "libtier0.so" ]||[ "${lib}" == "Core.so" ]||[ "${lib}" == "Editor.so" ]||[ "${lib}" == "Engine.so" ]||[ "${lib}" == "liblua.so" ]||[ "${lib}" == "libsteam_api.so" ]||[ "${lib}" == "ld-linux-x86-64.so.2" ]||[ "${lib}" == "libPhysX3_x86.so" ]||[ "${lib}" == "libPhysX3Common_x86.so" ]||[ "${lib}" == "libPhysX3Cooking_x86.so" ]; then
+	elif [ "${lib}" == "libtier0.so" ]||[ "${lib}" == "libtier0_srv.so" ]||[ "${lib}" == "libvstdlib_srv.so" ]||[ "${lib}" == "Core.so" ]||[ "${lib}" == "libvstdlib.so" ]||[ "${lib}" == "libtier0_s.so" ]||[ "${lib}" == "Editor.so" ]||[ "${lib}" == "Engine.so" ]||[ "${lib}" == "liblua.so" ]||[ "${lib}" == "libsteam_api.so" ]||[ "${lib}" == "ld-linux-x86-64.so.2" ]||[ "${lib}" == "libPhysX3_x86.so" ]||[ "${lib}" == "libPhysX3Common_x86.so" ]||[ "${lib}" == "libPhysX3Cooking_x86.so" ]; then
 		# Known shared libs what dont requires dependencies
 		:
 	else
 		unknownlib=1
 		echo "${lib}" >> "${tmpdir}/.depdetect_unknown"
 	fi
-done < "${tmpdir}/.depdetect_readelf"
+
+done < "${tmpdir}/.depdetect_readelf_uniq"
+
+
 sort "${tmpdir}/.depdetect_centos_list" | uniq >> "${tmpdir}/.depdetect_centos_list_uniq"
 sort "${tmpdir}/.depdetect_ubuntu_list" | uniq >> "${tmpdir}/.depdetect_ubuntu_list_uniq"
 sort "${tmpdir}/.depdetect_debian_list" | uniq >> "${tmpdir}/.depdetect_debian_list_uniq"
@@ -95,10 +82,10 @@ if [ "${unknownlib}" == "1" ]; then
 	sort "${tmpdir}/.depdetect_unknown" | uniq >> "${tmpdir}/.depdetect_unknown_uniq"
 fi
 
-awk -vORS=' ' '{ print $1, $2 }' "${tmpdir}/.depdetect_centos_list_uniq" > "${tmpdir}/.depdetect_centos_line"
-awk -vORS=' ' '{ print $1, $2 }' "${tmpdir}/.depdetect_ubuntu_list_uniq" > "${tmpdir}/.depdetect_ubuntu_line"
-awk -vORS=' ' '{ print $1, $2 }' "${tmpdir}/.depdetect_debian_list_uniq" > "${tmpdir}/.depdetect_debian_line"
-
+awk -vORS='' '{ print $1,$2 }' "${tmpdir}/.depdetect_centos_list_uniq" > "${tmpdir}/.depdetect_centos_line"
+awk -vORS='' '{ print $1,$2 }' "${tmpdir}/.depdetect_ubuntu_list_uniq" > "${tmpdir}/.depdetect_ubuntu_line"
+awk -vORS='' '{ print $1,$2 }' "${tmpdir}/.depdetect_debian_list_uniq" > "${tmpdir}/.depdetect_debian_line"
+echo ""
 echo ""
 echo "Required Dependencies"
 echo "================================="
@@ -128,10 +115,6 @@ echo ""
 echo "Required Librarys"
 echo "================================="
 sort "${tmpdir}/.depdetect_readelf" |uniq
-echo ""
-echo "ldd"
-echo "================================="
-ldd ${executable}
 echo -en "\n"
 rm -f "${tmpdir}/.depdetect_centos_line"
 rm -f "${tmpdir}/.depdetect_centos_list"
@@ -150,4 +133,4 @@ rm -f "${tmpdir}/.depdetect_readelf"
 rm -f "${tmpdir}/.depdetect_unknown"
 rm -f "${tmpdir}/.depdetect_unknown_uniq"
 
-core_exit.sh
+core_exit.sh

+ 4 - 8
lgsm/functions/command_dev_detect_glibc.sh

@@ -1,5 +1,5 @@
 #!/bin/bash
-# command_dev_detect_glibc.sh function
+# LinuxGSM command_dev_detect_glibc.sh function
 # Author: Daniel Gibbs
 # Website: https://gameservermanagers.com
 # Description: Automatically detects the version of GLIBC that is required.
@@ -15,10 +15,6 @@ if [ -z "$(command -v objdump)" ]; then
 	core_exit.sh
 fi
 
-if [ -z "${filesdir}" ]; then
-	dir="$(dirname $(readlink -f "${BASH_SOURCE[0]}"))"
-fi
-
 if [ -d "${filesdir}" ]; then
 	echo "Checking directory: "
 	echo "${filesdir}"
@@ -29,10 +25,10 @@ fi
 echo ""
 
 files=$(find ${filesdir} | wc -l)
-find ${filesdir} -type f -print0 |
+find "${filesdir}" -type f -print0 |
 while IFS= read -r -d $'\0' line; do
-	objdump -T $line 2>/dev/null|grep -oP "GLIBC[^ ]+" >>"${tmpdir}/detect_glibc.tmp"
-	echo -n "$i / $files" $'\r'
+	objdump -T "${line}" 2>/dev/null|grep -oP "GLIBC[^ ]+" >>"${tmpdir}/detect_glibc.tmp"
+	echo -n "${i} / ${files}" $'\r'
 	((i++))
 done
 echo ""