#!/bin/sh

export LC_ALL=POSIX
export LC_CTYPE=POSIX

prefix=$1
if [ -z "$prefix" ]; then
	echo "usage: applets/install.sh DESTINATION [--symlinks/--hardlinks/--scriptwrapper]"
	exit 1
fi

h=`sort busybox.links | uniq`

linkopts=""
scriptwrapper="n"
cleanup="0"
noclobber="0"
case "$2" in
	--hardlinks)     linkopts="-f";;
	--symlinks)      linkopts="-fs";;
	--scriptwrapper) scriptwrapper="y";swrapall="y";;
	--sw-sh-hard)    scriptwrapper="y";linkopts="-f";;
	--sw-sh-sym)     scriptwrapper="y";linkopts="-fs";;
	--cleanup)       cleanup="1";;
	--noclobber)     noclobber="1";;
	"")              h="";;
	*)               echo "Unknown install option: $2"; exit 1;;
esac

if [ -n "$DO_INSTALL_LIBS" ] && [ "$DO_INSTALL_LIBS" != "n" ]; then
	# get the target dir for the libs
	# assume it starts with lib
	libdir=$($CC -print-file-name=libc.so | \
		 sed -n 's%^.*\(/lib[^\/]*\)/libc.so%\1%p')
	if test -z "$libdir"; then
		libdir=/lib
	fi

	mkdir -p "$prefix/$libdir" || exit 1
	for i in $DO_INSTALL_LIBS; do
		rm -f "$prefix/$libdir/$i" || exit 1
		if [ -f "$i" ]; then
			cp -pPR "$i" "$prefix/$libdir/" || exit 1
			chmod 0644 "$prefix/$libdir/$i" || exit 1
		fi
	done
fi

if [ "$cleanup" = "1" ] && [ -e "$prefix/bin/busybox" ]; then
	inode=`ls -i "$prefix/bin/busybox" | awk '{print $1}'`
	sub_shell_it=`
		cd "$prefix"
		for d in usr/sbin usr/bin sbin bin; do
			pd=$PWD
			if [ -d "$d" ]; then
				cd "$d"
				ls -iL . | grep "^ *$inode" | awk '{print $2}' | env -i xargs rm -f
			fi
			cd "$pd"
		done
		`
	exit 0
fi

rm -f "$prefix/bin/busybox" || exit 1
mkdir -p "$prefix/bin" || exit 1
install -m 755 busybox "$prefix/bin/busybox" || exit 1

for i in $h; do
	appdir=`dirname "$i"`
	mkdir -p "$prefix/$appdir" || exit 1
	if [ "$scriptwrapper" = "y" ]; then
		if [ "$swrapall" != "y" ] && [ "$i" = "/bin/sh" ]; then
			ln $linkopts busybox "$prefix/$i" || exit 1
		else
			rm -f "$prefix/$i"
			echo "#!/bin/busybox" >"$prefix/$i"
			chmod +x "$prefix/$i"
		fi
		echo "	$prefix/$i"
	else
		if [ "$2" = "--hardlinks" ]; then
			bb_path="$prefix/bin/busybox"
		else
			case "$appdir" in
			/)
				bb_path="bin/busybox"
			;;
			/bin)
				bb_path="busybox"
			;;
			/sbin)
				bb_path="../bin/busybox"
			;;
			/usr/bin | /usr/sbin)
				bb_path="../../bin/busybox"
			;;
			*)
				echo "Unknown installation directory: $appdir"
				exit 1
			;;
			esac
		fi
		if [ "$noclobber" = "0" ] || [ ! -e "$prefix/$i" ]; then
			echo "  $prefix/$i -> $bb_path"
			ln $linkopts "$bb_path" "$prefix/$i" || exit 1
		else
			echo "  $prefix/$i already exists"
		fi
	fi
done

exit 0
