#!/bin/sh
set -eu
case "$0" in
    \.*)
        git_root="$PWD/$(dirname "$0")";;
    *)
        git_root="$(dirname "$0")";;
esac
for file in $(git -C "$git_root" ls-files)
do
    mkdir -p "$(dirname "$HOME/$file")"
    mv -f "$git_root/$file" "$HOME/$file"
done
mv "$git_root/.git" "$HOME/"
cd
rm -r "$git_root"
find -name .git -type f -exec sed -i "s@$git_root@$HOME@g" {} \;
find -name config -type f -exec sed -i "s@$git_root@$HOME@g" {} \;
git submodule update --remote
cd .githooks
find  -type f -exec ln -sf ../../.githooks/{} ../.git/hooks/ \;
cd ../
