#!/bin/bash

skip=()

inst()
{
	src="$1"
	dest="$2"

	mkdir -p "${dest%/*}"
	rm -f "$dest"
	cp -p "$src" "$dest"
	echo "installed $src"
}

lnk()
{
	src="$1"
	dest="$2"

	mkdir -p "${dest%/*}"
	if [ -L "$dest" ]; then
		if [ "$(readlink $dest)" != "$PWD/$src" ]; then
			rm -f "$dest"
			ln -s "$PWD/$src" "$dest"
			echo "updated $src"
		fi
	elif ! [ -e "$dest" ]; then
		ln -s "$PWD/$src" "$dest"
		echo "added $src"
	else
		save="$dest.hrcsave"
		rm -f "$save"
		mv -f "$dest" "$save"
		ln -s "$PWD/$src" "$dest"
		echo "replaced $src, old file in ${save#$HOME/}"
	fi
}

make
for f in rc/*; do
	[ -e "$f" ] || continue
	for s in "${skip[@]}"; do
		[ "$s" = "$f" ] && break
	done
	[ "$s" = "$f" ] && continue
	lnk "$f" "$HOME/.${f#*/}"
done

umask 077

if [ -d ~/.gnome2 ]; then
	for f in gnome/*; do
		[ -e "$f" ] || continue
		lnk "$f" "$HOME/.gnome2/${f#*/}"
	done
fi

sys=`uname`
hw=`uname -i 2>/dev/null || uname -p`

[ -d opt/noarch ] && lnk opt/noarch ~/opt/noarch/misc/bin

[ -d opt/$sys/noarch ] && lnk opt/$sys/noarch ~/opt/noarch/$sys/bin
[ -d opt/$hw ] && lnk opt/$hw ~/opt/$hw/misc/bin
[ -d opt/$sys/$hw ] && lnk opt/$sys/$hw ~/opt/$hw/$sys/bin

if [ "$hw" = x86_64 ]; then
	hw=i386
	[ -d opt/$hw ] && lnk opt/$hw ~/opt/$hw/misc/bin
	[ -d opt/$sys/$hw ] && lnk opt/$sys/$hw ~/opt/$hw/$sys/bin
fi

