diff --git a/samples/Shell/script_noext b/samples/Shell/script_noext new file mode 100644 index 0000000000..cc12216b0e --- /dev/null +++ b/samples/Shell/script_noext @@ -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"