aboutsummaryrefslogtreecommitdiff
path: root/samples/Shell
diff options
context:
space:
mode:
authorbrc <brcooley@cs.wm.edu>2012-08-13 18:07:28 -0700
committerbrc <brcooley@cs.wm.edu>2012-08-13 18:07:28 -0700
commitf8a7d118080805a42ca4c2ef65a69d6da1e1536e (patch)
treeee8c8a15d8fcbc26c6dc1dc30752411c5e761b8a /samples/Shell
parented70d29943e6040ebe6431d559dd1f2a4cad076e (diff)
Adding extensionless script to Shell samples
Diffstat (limited to 'samples/Shell')
-rw-r--r--samples/Shell/script_noext55
1 files changed, 55 insertions, 0 deletions
diff --git a/samples/Shell/script_noext b/samples/Shell/script_noext
new file mode 100644
index 0000000..cc12216
--- /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"