diff --git a/bootstrap/replicate.sh b/bootstrap/replicate.sh index d06ae8a..1e4db3c 100755 --- a/bootstrap/replicate.sh +++ b/bootstrap/replicate.sh @@ -1,8 +1,29 @@ #!/bin/sh +deps="git rsync" +for dep in $deps; do + if ! [ "`which $dep > /dev/null 2>&1`" ]; then + printf "$0: error: could not find program \"$dep\" in PATH\n" 1>&2 + exit 1 + fi +done + tempfolder="/tmp/dots" gitdir="$HOME/.dotfiles" -git clone --recursive --separate-git-dir="$gitdir" git@gitlab.com:rehashedsalt/home.git $tempfolder +repo='git@gitlab.com:rehashedsalt/home.git' +config='git --git-dir="$gitdir" --work-tree="$HOME"' + +git clone --recursive --separate-git-dir="$gitdir" "$repo" "$tempfolder" +if ! $0; then + printf "$0: error: failed cloning repository \"$repo\"\n" 1>&2 + printf "Do you have the appropriate permissions? Does the remote host know your key?\n" + exit 2 +fi rsync -rvl --exclude ".git" $tempfolder/ $HOME/ rm -r $tempfolder -git --git-dir="$gitdir" --work-tree="$HOME" submodule update --init --recursive --remote -git --git-dir="$gitdir" --work-tree="$HOME" status.showUntrackedFiles no +$config submodule update --init --recursive --remote +$config status.showUntrackedFiles no +printf "$0: dotfiles set up successfully\n" +printf "Be sure and configure the following before issuing any commits:\n" +printf " git config --global user.email\n" +printf " git config --global user.name\n" +exit 0