#!/bin/zsh # Set up dotfiles on a new machine. setopt LOCAL_OPTIONS ERR_RETURN NO_UNSET PIPE_FAIL local repo_address="https://schlomp.space/tastytea/dotfiles.git" local tmp_git_command='git --git-dir=${HOME}/.dotfiles/ --work-tree=${HOME}' if [[ -f ~/.ssh/noid_dotfiles ]]; then repo_address="git@schlomp.space:tastytea/dotfiles.git" export GIT_SSH_COMMAND="ssh -i ~/.ssh/noid_dotfiles" tmp_git_command="GIT_SSH_COMMAND=\"ssh -i ~/.ssh/noid_dotfiles\" ${tmp_git_command}" fi alias config="${tmp_git_command}" git clone --bare ${repo_address} "${HOME}/.dotfiles" && \ config submodule init && \ config submodule update && \ config config --local status.showUntrackedFiles no && \ config config --local submodule.recurse true && \ print "Run \033[1;32mrm ${0} && ${tmp_git_command} checkout\033[0m" \ "to copy the files to your home directory." # TODO: [remote "origin"] needs to have # fetch = +refs/heads/*:refs/remotes/origin/* in order for # submodule.recurse to work, but why?