#!/bin/sh

info() { echo "$$: $*"; }
err() { echo "E: $$: $*" >&2; }

FILES="$(pwd -P)"
for x; do
	if [ -d "$x" ]; then
		true # skip dirs
	elif [ -L "$HOME/$x" ]; then
		d0="$(readlink "$HOME/$x")"
		d1="$(echo "$FILES/$x" | sed -e 's,/\./,/,g')"
		d1="$(readlink -f "$d1")"

		if [ "$d0" != "$d1" ]; then
			err "$x: relinking, was [$d0]"
			ln -snf "$d1" "$HOME/$x"
		fi
	else
		d="$(dirname "$x")"
		if [ ! -d "$HOME/$d/" ]; then
			info "$d: creating dir"
			mkdir -p "$HOME/$d/"
		fi

		d="$(echo "$FILES/$x" | sed -e 's,/\./,/,g')"
		if [ -e "$HOME/$x" ]; then
			info "$x: importing changes and linking"
			rm "$d"
			cp -a "$HOME/$x" "$d"
		else
			info "$x: linking"
			d="$(readlink -f "$d")"
		fi
		ln -snf "$d" "$HOME/$x"
	fi
done