mirror of
https://github.com/KevinMidboe/linguist.git
synced 2025-10-29 09:40:21 +00:00
56 lines
1.5 KiB
Bash
Executable File
56 lines
1.5 KiB
Bash
Executable File
#!/bin/bash
|
|
#
|
|
# Bash script to "plugin" to the dotfile repository, does a lot of fun stuff
|
|
# like turning the normal dotfiles (eg .bashrc) into symlinks to this
|
|
# repository's versions of those files (ensure that updates are just a
|
|
# 'git pull' away), optionally moving old files so that they can be
|
|
# preserved, setting up a cron job to automate the aforementioned git
|
|
# pull, and maybe some more fun stuff
|
|
#
|
|
|
|
shopt -s nocasematch # This makes pattern matching case-insensitive
|
|
|
|
POSTFIX="local"
|
|
URL="https://github.com/brcooley/.f.git"
|
|
PUSHURL="git@github.com:brcooley/.f.git"
|
|
|
|
overwrite=true
|
|
|
|
print_help () {
|
|
echo -e "\nA script to keep dotfiles up to date\n"
|
|
echo "Options:"
|
|
echo " -k, --keep-local Keeps local copies of dotfiles by appending"
|
|
echo " \"$POSTFIX\" to them"
|
|
exit 0
|
|
}
|
|
|
|
|
|
for opt in $@; do
|
|
case $opt in
|
|
-k | --keep-local) overwrite=false;;
|
|
-h | --help) print_help;;
|
|
esac
|
|
done
|
|
|
|
|
|
|
|
for f in .*; do
|
|
if [ "$f" = ".git" -o "$f" = "." -o "$f" = ".." -o "$f" = ".f" ]; then continue; fi
|
|
if [ -f "$HOME/$f" ]; then
|
|
if [ $overwrite = false ]; then
|
|
mv "$HOME/$f" "$HOME/${f}_$POSTFIX"
|
|
else
|
|
rm "$HOME/$f"
|
|
fi
|
|
# echo "Moving ~/$f to $HOME/${f}_$POSTFIX"
|
|
fi
|
|
ln -s "$PWD/$f" "$HOME/$f"
|
|
done
|
|
|
|
# Git versions prior to 1.7.? (1.7.1 confirmed) do not have a --local option
|
|
git config --local remote.origin.url "$URL"
|
|
git config --local remote.origin.pushurl "$PUSHURL"
|
|
crontab .jobs.cron
|
|
source ~/.bashrc
|
|
echo "Plugin succesful"
|