#!/bin/bash
set -e

Action=$1

LIBDIR=/usr/lib/loongarch64-linux-gnu/innogpu-fh2m
BINARYDIR=/opt/innogpu/usr/local/bin/

LDCONF=/etc/ld.so.conf.d/0-innogpu.conf

ISINNO=`lspci -d 1ec8:* -n |wc -l`

XORG_FILE=/usr/bin/Xorg



#clean /etc/ld.so.conf.d
function remove_ldconf() {
	if [ -f ${LDCONF} ];then
		rm -r ${LDCONF}
	fi
}

function add_binary(){
	if [ -d ${BINARYDIR} ]; then
	for binary in $(find ${BINARYDIR} -type f -executable)
	do
		usr_local_bin=$(echo ${binary} |sed 's/\/opt\/innogpu//')
		ln -sf ${binary} ${usr_local_bin}
	done
	fi
}

function remove_binary(){
	if [ -d ${BINARYDIR} ]; then
	for binary in $(find ${BINARYDIR} -type f -executable)
	do
		usr_local_bin=$(echo ${binary} |sed 's/\/opt\/innogpu//')
		if [ -L ${usr_local_bin} ] && [ $(ls -ld ${usr_local_bin}|awk '{print $NF}' |grep -c innogpu) != 0 ]; then
			rm -rf ${usr_local_bin}
		fi
	done
	fi
}

function update_ldconf() {
	if [ x${ISINNO} != "x0" ] && [ -d "${LIBDIR}" ]; then
		add_binary
		echo ${LIBDIR} > ${LDCONF}
	else
		remove_binary
		remove_ldconf
	fi
	ldconfig
}


case $Action in
	update)
		update_ldconf
		;;
	remove)
		remove_binary
		remove_ldconf
		;;
	*)
		exit 0
		;;
esac

exit 0
