Index: trunk/Ohana/src/opihi/cmd.data/book_commands.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/book_commands.c	(revision 10997)
+++ trunk/Ohana/src/opihi/cmd.data/book_commands.c	(revision 11007)
@@ -220,5 +220,5 @@
 
   int where, N;
-  char *varName;
+  char *varName, *keyName, *keyValue;
   Book *book;
   Page *page;
@@ -231,6 +231,15 @@
   }
 
+  keyName = NULL;
+  if ((N = get_argument (argc, argv, "-key"))) {
+    remove_argument (N, &argc, argv);
+    keyName = strcreate (argv[N]);
+    remove_argument (N, &argc, argv);
+    keyValue = strcreate (argv[N]);
+    remove_argument (N, &argc, argv);
+  }
+
   if (argc != 3) {
-    gprint (GP_ERR, "USAGE: book getpage (book) (where) [-var var]\n");
+    gprint (GP_ERR, "USAGE: book getpage (book) (where) [-var var] [-key key value]\n");
     return FALSE;
   }
@@ -244,5 +253,9 @@
   }
 
-  page = GetPage (book, where);
+  if (keyName == NULL) {
+    page = GetPage (book, where);
+  } else {
+    page = GetPageRestricted (book, where, keyName, keyValue);
+  }
   if (page == NULL) {
     gprint (GP_ERR, "page %s in book %s not found\n", argv[2], argv[1]);
