chiark / gitweb /
bashrc: Reintroduce `world' function, because it's useful.
authorMark Wooding <mdw@distorted.org.uk>
Thu, 7 May 2009 11:13:01 +0000 (12:13 +0100)
committerMark Wooding <mdw@distorted.org.uk>
Thu, 7 May 2009 11:13:01 +0000 (12:13 +0100)
bashrc

diff --git a/bashrc b/bashrc
index 7f4cd74ddb740e76266fd4aa8a068b77cbb5db9a..fd915843e30838333bba787dcff3ead5446caace 100644 (file)
--- a/bashrc
+++ b/bashrc
@@ -289,6 +289,33 @@ pathhack () {
   fi
 }
 
+# --- Switching security worlds ---
+
+world () {
+  local nfast=${NFAST_HOME-/opt/nfast}
+  local kmdata
+  case "$#" in
+    0)
+      echo "${NFAST_KMDATA#$nfast/kmdata-}"
+      ;;
+    *)
+      if [ -d "$1" ]; then
+       kmdata=$1
+      elif [ -d "$nfast/kmdata-$1" ]; then
+       kmdata=$nfast/kmdata-$1
+      else
+       echo >&2 "world: can't find world $1"
+       return 1
+      fi
+      shift
+      case "$#" in
+       0) export NFAST_KMDATA=$kmdata ;;
+       *) "$@" ;;
+      esac
+      ;;
+  esac
+}
+
 # --- Fix `man' under Slowaris ---
 
 case "$MACHTYPE" in