#!/bin/bash

interp_list="bash dash  perl python2 python3 php java ruby lua nodejs node"

DIR_INSTALL="/opt/apptable"
usr_interp_name_list_file=${DIR_INSTALL}"/config/usr_interp_name_list"
usr_interp_name_list_file_tmp=${DIR_INSTALL}"/config/usr_interp_name_list_tmp"

for interp in ${interp_list}
do
	name1=`which ${interp}`
	if [  "${name1}" == "" ]; then
		continue
	fi

	realname=`realpath ${name1}`
	dirname=`dirname ${realname}`

	bin_interp_list=`ls ${dirname}/${interp}*`
	for bin_interp in ${bin_interp_list} 
	do
		if [[ "${bin_interp}" =~ ${interp}[0-9] || "${bin_interp}" =~ ${interp}\.[0-9] || "${bin_interp}" == "${realname}" ]]; then
			if test -L ${bin_interp}; then
				continue
			fi

			bin_realname=`realpath ${bin_interp}`
			mimetype=`file  ${bin_realname}`
			elf_exec=`echo ${mimetype} | grep "ELF" | grep "executable"` 

			if [ -n "{elf_exec}" ]; then 
				echo ${bin_realname} >> ${usr_interp_name_list_file_tmp}
			fi
		fi
	done

done

name1=`which java`
java_dir="/usr/lib/jvm/"
if [  "${name1}" != "" ]; then
	jdk_dir=`ls ${java_dir}`
	for jdk in ${jdk_dir};
	do
		if test -L ${java_dir}/${jdk}; then
			continue
		fi
		java_bin=${java_dir}/${jdk}/bin/java
		if [[ -e ${java_bin} ]]; then
			real_java_bin=`realpath ${java_bin}`
			echo ${real_java_bin} >> ${usr_interp_name_list_file_tmp}
		fi
	done
fi

sort ${usr_interp_name_list_file_tmp} | uniq > ${usr_interp_name_list_file_tmp}.tmp
diff_txt=`diff ${usr_interp_name_list_file_tmp}.tmp ${usr_interp_name_list_file}`
if [ -n "{diff_txt}" ]; then 
	cp ${usr_interp_name_list_file_tmp}.tmp ${usr_interp_name_list_file}
fi

rm -rf ${usr_interp_name_list_file_tmp} ${usr_interp_name_list_file_tmp}.tmp
