Added disconnect.sh and associated elements.
authorW. Trevor King <wking@drexel.edu>
Wed, 26 Nov 2008 19:17:40 +0000 (14:17 -0500)
committerW. Trevor King <wking@drexel.edu>
Wed, 26 Nov 2008 19:17:40 +0000 (14:17 -0500)
Now you can stop tracking the central server and restore a standard
setup if you want.

Makefile
_bashrc
disconnect.sh [new file with mode: 0755]
fixup.sh

index d6b5a47ada0d07f67cbbd48653e16219cb726a53..8148548d01e70c554c913aa0a7b6541e35800404 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -38,3 +38,7 @@ localdiff:
 # i.e. What specialization do I want compared to the central .dotfiles
 localpatch:
        ./diff.sh > local.patch
+
+# No Remove this computer from the auto-updates list
+disconnect:
+       ./disconnect.sh
diff --git a/_bashrc b/_bashrc
index ff9b6473ff86b92d603317b0a4e3b4cd2e8f91a3..2f775a8a9c045f00cb2eb0416f43cef838b4005b 100644 (file)
--- a/_bashrc
+++ b/_bashrc
@@ -157,6 +157,7 @@ if [ -z "$SSH_CLIENT" ]; then
     fi
 fi
 
+### ---- begin .dotfiles section ---- (keep this magic comment)
 
 # Check for Git (versioning system) so we know how to get our .dotfiles
 GIT_PATH=`which git`
@@ -196,3 +197,5 @@ if [ -d ~/.dotfiles/ ]; then
         popd
     fi
 fi
+
+### ---- end .dotfiles section ---- (keep this magic comment)
diff --git a/disconnect.sh b/disconnect.sh
new file mode 100755 (executable)
index 0000000..d92089c
--- /dev/null
@@ -0,0 +1,43 @@
+#!/bin/bash
+#
+# You're about to give your sysadmin account to some newbie, and
+# they'd just be confused by all this efficiency.  This script freezes
+# your dotfiles in their current state and makes everthing look
+# normal.  Note that this will delete your ~/.dotfiles directory, and
+# strip the .dotfiles portion from your ~/.bashrc file.
+
+# For each file in this directory.
+for file in _*; do
+    # Create .dotfile version.
+    dotfile=.${file/_/}
+    
+    # Replace symlinks with their target
+    if [ -h ~/$dotfile ]; then
+       echo -n ""
+       #rm -f ~/$dotfile
+       #mv $file ~/$dotfile
+    fi
+done
+
+# See if the bashrc file is involved with .dotfiles at all
+if [ ! -e _bashrc ]; then
+    # No _bashrc file, so leave ~/.bashrc alone
+    exit
+fi
+
+# We may have a dotfiles section in ~/.bashrc.  Strip it out.
+BC="### ---- begin .dotfiles section ---- (keep this magic comment)"
+EC="### ---- end .dotfiles section ---- (keep this magic comment)"
+AWKSCRIPT="BEGIN{copy=1}{"
+AWKSCRIPT="$AWKSCRIPT if(\$0 == \"$BC\"){copy=0};"
+AWKSCRIPT="$AWKSCRIPT if(\$0 == \"$EC\"){copy=1};"
+AWKSCRIPT="$AWKSCRIPT if(copy==1 && \$0 != \"$EC\"){print \$0}"
+AWKSCRIPT="$AWKSCRIPT}"
+
+awk "$AWKSCRIPT" ~/.bashrc > bashrc_stripped
+# see if the stripped file is any different
+DIFF=`diff ~/.bashrc bashrc_stripped` || exit 1
+if [ -n "$DIFF" ]
+
+rm -f ~/.bashrc
+cp bashrc_stripped ~/.bashrc
index 5a4ad7eaeb504860e33e919d5e22645a3354d570..30d6cf6f7a16bcd51b719f3213c9afcd6c72a662 100755 (executable)
--- a/fixup.sh
+++ b/fixup.sh
@@ -162,7 +162,7 @@ NOT_CHANGED=""
 UPDATED=""
 ADDED=""
 
-# For each file in this directory.
+# For each dotfile in this directory.
 for file in _*; do
     # Create .dotfile version.
     dotfile=.${file/_/}