chiark / gitweb /
mdw.conf: Central configuration file for common differences.
[profile] / bash_profile
index 70d76068611e346a50bf43387cb33c9f955af7d0..198aeeb6ac7590789a25a05c5e7d4ecb21de9522 100644 (file)
@@ -8,6 +8,15 @@ if [ -z "$__mdw_profile" ]; then
 
 export __mdw_profile=done
 
+# --- Work out my home directory ---
+#
+# This horrible trick resolves symbolic links.  It enables resolving links,
+# changes directory and displays the name of the directory in a subshell
+# to avoid changing the current state.
+
+HOME=`(set -P; cd $HOME; pwd)`
+cd $HOME
+
 # --- Add elements to a path string ---
 
 __mdw_addto () {
@@ -44,24 +53,35 @@ __mdw_addto () {
   export $var=$val
 }
 
-# --- What sort of machine am I running on? ---
-
-export arch=`echo $MACHTYPE | tr 'A-Z' 'a-z'`
+# --- Find a configuration item ---
+
+__mdw_conf () {
+  local var=$1
+  val=`sed -n "
+    /^[        ]*$var[         ]*=[    ]*\(\|.*[^      ]\)[    ]*$/ {
+      s//\1/; p; q
+    }
+  " ${MDWCONF-$HOME/.mdw.conf}`
+  case "$val" in "~"*) val=`eval "echo ${val%%/*}"`${val#\~};; esac
+  echo "$val"
+}
 
 # --- Set the path variable ---
 
 __mdw_addto PATH l \
+  $HOME/bin \
   {,/usr{,/local}{,/X11R6}}{/bin,/sbin,/games} \
-  $HOME{,/arch/{$arch,any-any-any}}/bin \
   /opt/nfast{/bin,/sbin} \
   $HOME/src/ncipher/scripts
-export PLAN9=/usr/local/plan9
-__mdw_addto PATH r \
-  $PLAN9/bin
+if [ -d /usr/local/plan9 ]; then
+  export PLAN9=/usr/local/plan9
+  __mdw_addto PATH r \
+    $PLAN9/bin
+fi
 
 # --- And the same for manual pages ---
 
-case "$arch" in
+case "$MACHTIME" in
   *linux*)
     MANPATH=`manpath -q`
     ;;
@@ -70,20 +90,11 @@ __mdw_addto MANPATH l \
   {/usr{,/local}{,/X11R6}{,/share}}/{man,catman} \
   $HOME/man
 
-# --- Work out my home directory ---
-#
-# This horrible trick resolves symbolic links.  It enables resolving links,
-# changes directory and displays the name of the directory in a subshell
-# to avoid changing the current state.
-
-HOME=`(set -P; cd $HOME; pwd)`
-cd $HOME
-
 # --- Where my mail comes from ---
 
-export MAIL=$HOME/Mailbox
+export MAIL=`__mdw_conf mailbox`
 export NAME="Mark Wooding"
-export EMAIL="mdw@distorted.org.uk"
+export EMAIL=`__mdw_conf email`
 export QMAILINJECT=c
 
 # --- GIT environment things ---
@@ -117,21 +128,16 @@ __mdw_addto INFOPATH r $HOME/info /usr/info /usr/share/info /usr/local/info
 __mdw_addto PERLLIB r $HOME/lib/perl
 __mdw_addto PYTHONPATH r $HOME/lib/python
 
+export __MDW_ROOTLY=`__mdw_conf rootly`
+
 [ -z "$LS_OPTIONS" ] && export LS_OPTIONS="-F"
 
 export BASCAT="-l +n"
 
 export CVS_RSH=ssh
-case $HOST in
-  metalzone | metalzone.* )
-    export CVSROOT="/home/cvs/cvs"
-    export SVNROOT="file:///home/cvs/svn"
-    ;;    
-  *)
-    export CVSROOT="metalzone.distorted.org.uk:/home/cvs/cvs"
-    export SVNROOT="svn+ssh://metalzone.distorted.org.uk/home/cvs/svn"
-    ;;
-esac
+export CVSROOT=`__mdw_conf cvs-root`
+export SVNROOT=`__mdw_conf svn-root`
+
 export BECOME="--preserve-environment"
 
 export PAGER=`type -p less` METAMAIL_PAGER=`type -p less`
@@ -143,8 +149,8 @@ export LESSCHARSET=latin1
 export TMP=$TMPDIR
 export PERL_READLINE_NOWARN=yes
 
-[ -z "$NNTPSERVER" ] && export NNTPSERVER=metalzone.distorted.org.uk
-[ -z "$http_proxy" ] && export http_proxy="http://metalzone.distorted.org.uk:3128/"
+[ -z "$NNTPSERVER" ] && export NNTPSERVER=`__mdw_conf nntp-server`
+[ -z "$http_proxy" ] && export http_proxy=`__mdw_conf http-proxy`
 [ -z "$ftp_proxy" ] && export ftp_proxy=$http_proxy
 
 export XUSERFILESEARCHPATH="$HOME/.Xapps/%N:/usr/lib/X11/%T/%N%S"