Browse Source

Updated the bootstrap script

Replaced the inline export through echo with a replacement script. Added scripting to add hashing so the update script can be updated whenever it is needed, but not all the time.
master
Drew Short 9 years ago
parent
commit
9588c847b9
  1. 2
      scripts/.update_dotfiles.sh
  2. 37
      scripts/bootstrap.sh

2
scripts/.update_dotfiles.sh

@ -1,6 +1,6 @@
#!/usr/bin/env sh
echo 'Updating dotfiles'
cd /home/sothr/dotfiles
cd @GIT_DIR@
git checkout master
git pull
git submodule update

37
scripts/bootstrap.sh

@ -33,6 +33,12 @@ link_dir() {
fi
}
# Escape the path so we can use it in sed
escape_path() {
local safe="$(echo $1 | sed 's/\//\\\//g')"
echo $safe
}
set -x
set -e
@ -100,14 +106,31 @@ link "$HOME" ".gitconfig" "$DOTFILES_HOME/.gitconfig"
# Configure .zshrc
link "$HOME" ".zshrc" "$DOTFILES_HOME/.zshrc"
cd $GIT_DIR
# Create an auto updater for the dotfiles
SOURCE_MD5="$(md5sum scripts/.update_dotfiles.sh | tr -s ' ' | cut -d ' ' -f 1)"
WRITE_NEW_UPDATER=false
# If it doesn't exist, we need to create it
if [ ! -f "$HOME/.update_dotfiles.sh" ]; then
echo "#!/usr/bin/env sh" > $HOME/.update_dotfiles.sh
echo "echo 'Updating dotfiles'" >> $HOME/.update_dotfiles.sh
echo "cd $PWD" >> $HOME/.update_dotfiles.sh
echo "git checkout master" >> $HOME/.update_dotfiles.sh
echo "git pull" >> $HOME/.update_dotfiles.sh
echo "git submodule init" >> $HOME/.update_dotfiles.sh
echo "git submodule update" >> $HOME/.update_dotfiles.sh
WRITE_NEW_UPDATER=true
else
# Now we need to check if the md5's don't match
CURRENT_MD5="$(cat $HOME/.update_dotfiles.sh | tail -n 1 | tr -s ' ' | cut -d ' ' -f 2)"
# No hash, we need to update the file
if [ -z "$CURRENT_MD5" ]; then
WRITE_NEW_UPDATER=true
else
# need to compare the hashes, if they don't match we need to update
if [ "$CURRENT_MD5" != "$SOURCE_MD5" ]; then
WRITE_NEW_UPDATER=true
fi
fi
fi
if $WRITE_NEW_UPDATER; then
SAFE_PATH="$(escape_path $GIT_DIR)"
cat "scripts/.update_dotfiles.sh" | sed "s/@GIT_DIR@/$SAFE_PATH/" > $HOME/.update_dotfiles.sh
echo "# $SOURCE_MD5" >> $HOME/.update_dotfiles.sh
chmod +x $HOME/.update_dotfiles.sh
fi
Loading…
Cancel
Save