44 lines
1.1 KiB
Bash
Executable file
44 lines
1.1 KiB
Bash
Executable file
#!/usr/bin/env sh
|
|
# Automatically deploys my rice onto a new system
|
|
|
|
git_url="https://github.com/agryphus/archrice.git"
|
|
location="$HOME/repos/dotfiles"
|
|
|
|
if [ ! -d "$location" ]; then
|
|
mkdir -p "$location"
|
|
fi
|
|
|
|
cd "$location"
|
|
|
|
if [ "$(git remote get-url origin 2> /dev/null)" != "$git_url" ]; then
|
|
git clone --bare "$git_url" .
|
|
fi
|
|
|
|
alias config="git --git-dir $location --work-tree=$HOME"
|
|
config config status.showUntrackedFiles no
|
|
|
|
# Checkout branch, but move collisions to ~/.config-backup
|
|
mkdir -p "$HOME/.config-backup"
|
|
config checkout 2>&1 \
|
|
| egrep "\s+\." | awk {'print $1'} \
|
|
| xargs -I {} mv {} "$HOME/.config-backup/"{}
|
|
|
|
# Fix unsafe permissions on gnupg directory
|
|
chmod 700 "$HOME/.local/share/gnupg/"
|
|
|
|
config submodule init
|
|
config submodule update --force --recursive --init --remote
|
|
|
|
# Git submodules will, by default, have the branch name be a hash
|
|
# of the current commit. This bit just goes into each submodule
|
|
# and explicitly checks out master.
|
|
cd $HOME
|
|
submodules="$(grep submodule .gitmodules | awk -F'"' '{print $2}')"
|
|
IFS=$'\n'
|
|
for mod_path in $submodules; do
|
|
cd "$HOME/$mod_path"
|
|
git checkout master
|
|
done
|
|
|
|
exec zsh
|
|
|