#!/bin/bash # https://www.atlassian.com/git/tutorials/dotfiles # Variables DOTFILES_FOLDER=.dotfiles DOTFILES_REPO=https://github.com/pkharel/${DOTFILES_FOLDER}.git DOTFILES_REPO_SSH=git@github.com:pkharel/${DOTFILES_FOLDER}.git # Create empty repo git clone --bare ${DOTFILES_REPO} ${HOME}/${DOTFILES_FOLDER} function dotfiles { /usr/bin/git --git-dir=${HOME}/${DOTFILES_FOLDER}/ --work-tree=${HOME} $@ } # Checkout files and move existing ones to backup folder TIMESTAMP=$(date +%FT%H-%M-%S) dotfiles checkout if [ $? = 0 ]; then echo "Checked out dotfiles."; else echo "Backing up pre-existing dot files."; mkdir -p ${DOTFILES_FOLDER}-backup/${TIMESTAMP} dotfiles checkout 2>&1 | egrep "\s+\." | awk {'print $1'} | xargs -I{} mv {} ${DOTFILES_FOLDER}-backup/${TIMESTAMP}/{} fi; dotfiles checkout dotfiles config status.showUntrackedFiles no # Also set remote push (SSH) dotfiles remote set-url --push origin ${DOTFILES_REPO_SSH}