diff options
| author | Joshua Peek <josh@joshpeek.com> | 2012-08-13 18:18:04 -0700 |
|---|---|---|
| committer | Joshua Peek <josh@joshpeek.com> | 2012-08-13 18:18:04 -0700 |
| commit | 080cd097ba402f1863549e42b5710c77d3d6d147 (patch) | |
| tree | 918cf7e7f65e94b2ecd8790092afae7344d53a3a /samples/Shell | |
| parent | ed70d29943e6040ebe6431d559dd1f2a4cad076e (diff) | |
| parent | 866e446dbe0d8b893de76ac5b73cc3cfd613cc0b (diff) | |
Merge branch 'brcooley-master'
Diffstat (limited to 'samples/Shell')
| -rw-r--r-- | samples/Shell/plugin.script! | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/samples/Shell/plugin.script! b/samples/Shell/plugin.script! new file mode 100644 index 0000000..cc12216 --- /dev/null +++ b/samples/Shell/plugin.script! @@ -0,0 +1,55 @@ +#!/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" |
