#!/bin/sh

RANDOMTOOLS_SYMLINK="\
/bin/unrar-5.4.5 \
/bin/su-8.15 \
/bin/sudo-1.6.8p12 \
/sbin/hdparm-9.43 \
/bin/iperf-2.0.5 \
/bin/ldd-2.8 \
/etc/services-2.30 \
/etc/protocols-2.30 \
/bin/strace-4.9 \
"

RANDOMTOOLS_LIBICONV="\
/bin/rsync-3.1.1 \
/bin/curlftpfs-0.9.2 \
"

RANDOMTOOLS_MAGIC="\
/bin/file-5.25 \
"

RANDOMTOOLS_TERMINFO="\
/bin/screen-4.2.1 \
/bin/htop-1.0.3 \
/sbin/iftop-1.0pre4 \
/bin/nmon-14i \
/bin/ncdu-1.12 \
"

RANDOMTOOLS_TERMINFO_NANORC="\
/bin/nano-2.2.6 \
"

RANDOMTOOLS_TERMINFO_LIBRARY_PATH="\
/bin/iperf3-3.0.3 \
"

SymlinkTool()
{
	local tool="$1"
	local nude=` echo $tool | cut -d '-' -f 1 `
	[ -f ${nude}.firmware ] && return
	[ -f ${nude} ] && mv ${nude} ${nude}.firmware
	ln -s ${PKG_ROOT}${tool} ${nude}
}

ScriptToolEnv()
{
	local tool="$1"
	local env=""
	while [ "$2" != "" ] ; do
		env="$env $2"
		shift
	done

	local nude=` echo $tool | cut -d '-' -f 1 `
	[ -f ${nude}.firmware ] && return
	[ -f ${nude} ] && mv ${nude} ${nude}.firmware
	echo "#!/bin/sh" >${nude}
	echo $EXTRA_INITIALISATION >>${nude}
	echo "${env} exec ${PKG_ROOT}${tool} \"\$@\"" >>${nude}
	chmod a+x ${nude}
}

Start()
{
	for tool in $RANDOMTOOLS_SYMLINK
	do
		SymlinkTool $tool
	done

	if [ "${PKG_FIRMWARE}" = "4" ] ; then
		for tool in $RANDOMTOOLS_LIBICONV $RANDOMTOOLS_MAGIC
		do
			SymlinkTool $tool
		done
	else
		local libiconv=${PKG_ROOT}/lib/libiconv.so.2
		[ ! -f ${libiconv} ] && wget ${PKG_DOWNLOAD_URL}/libiconv.so.2.gz -O - | gunzip >${libiconv}
		for tool in $RANDOMTOOLS_LIBICONV
		do
			ScriptToolEnv $tool "LD_LIBRARY_PATH=${PKG_ROOT}/lib"
		done
	
		for tool in $RANDOMTOOLS_MAGIC
		do
			ScriptToolEnv "$tool" "LD_LIBRARY_PATH=${PKG_ROOT}/lib MAGIC=${PKG_ROOT}/share/misc/magic.mgc"
		done

	fi	

	local terminfo=${PKG_ROOT}/share/terminfo
	local env="TERMINFO=${terminfo}"

	for tool in $RANDOMTOOLS_TERMINFO
	do
		ScriptToolEnv "$tool" $env
	done

	for tool in $RANDOMTOOLS_TERMINFO_NANORC
	do
		[ "` dirname ${PKG_ROOT} `" != "/usr/local" ] && EXTRA_INITIALISATION="[ ! -f ~/.nanorc ] && ln -s ${PKG_ROOT}/etc/nanorc ~/.nanorc"
		ScriptToolEnv "$tool" $env
		unset EXTRA_INITIALISATION		
	done

	env="$env LD_LIBRARY_PATH=${PKG_ROOT}/lib"
	for tool in $RANDOMTOOLS_TERMINFO_LIBRARY_PATH
	do
		ScriptToolEnv "$tool" $env
	done
	
	cp -a ${PKG_ROOT}/etc/sudoers /etc/sudoers
}

Stop()
{
	local symlinks="$RANDOMTOOLS_SYMLINK"
	
	[ "$PKG_FIRMWARE" = "4" ] && symlinks="$symlinks $RANDOMTOOLS_LIBICONV $RANDOMTOOLS_MAGIC"
	
	for tool in $symlinks
	do
		local nude=` echo $tool | cut -d '-' -f 1 `
		[ -h ${nude} ] && [ "` readlink $nude `"  = "${PKG_ROOT}${tool}" ] && rm ${nude}
		[ -f ${nude}.firmware ] && mv ${nude}.firmware ${nude}
	done

	local scripts="$RANDOMTOOLS_TERMINFO $RANDOMTOOLS_TERMINFO_LIBRARY_PATH $RANDOMTOOLS_TERMINFO_NANORC"
	[ "$PKG_FIRMWARE" != "4" ] && scripts="$scripts $RANDOMTOOLS_LIBICONV $RANDOMTOOLS_MAGIC"
	
	for tool in $scrips
	do
		local nude=` echo $tool | cut -d '-' -f 1 `
		if grep "${PKG_ROOT}${tool}" ${nude} >/dev/null
		then
			rm ${nude}
			[ -f ${nude}.firmware ] && mv ${nude}.firmware ${nude}
		fi
	done

	mv /etc/sudoers ${PKG_ROOT}/etc/sudoers
}

case $1 in
    start)
	Start ;;
    stop)
	Stop ;;
esac
