-/* zebrash.c - command-line interface to zebra API
- * $Id: zebrash.c,v 1.13 2003-06-23 15:38:16 adam Exp $
- *
- * Copyrigth 2003 Index Data Aps
- *
- */
-
+/* $Id: zebrash.c,v 1.15 2003-07-03 14:45:02 heikki Exp $
+ Copyright (C) 2002,2003
+ Index Data Aps
+
+This file is part of the Zebra server.
+
+Zebra is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free
+Software Foundation; either version 2, or (at your option) any later
+version.
+
+Zebra is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with Zebra; see the file LICENSE.zebra. If not, write to the
+Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
+02111-1307, USA.
+*/
+
+/*
+ zebrash.c - command-line interface to zebra API
+*/
+
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
if (!rc)
rc=onecommand(tmp,outbuff,"");
logf(LOG_APP,"quickstart");
- if (!rc)
- rc=onecommand("zebra_start",outbuff,"");
- if (!rc)
- rc=onecommand("zebra_open",outbuff,"");
+ if (!zs)
+ if (!rc)
+ rc=onecommand("zebra_start",outbuff,"");
+ if (!zh)
+ if (!rc)
+ rc=onecommand("zebra_open",outbuff,"");
if (!rc)
rc=onecommand("select_database Default",outbuff,"");
return rc;
return zebra_create_database(zh, db);
}
+static int cmd_drop_database( char *args[], char *outbuff)
+{
+ char *db=args[1];
+ if (!db)
+ db="Default";
+ strcat(outbuff,"Dropping database ");
+ strcat(outbuff,db);
+ strcat(outbuff,"\n");
+
+ return zebra_drop_database(zh, db);
+}
+
static int cmd_begin_trans( char *args[], char *outbuff)
{
int rw=0;
return rc;
}
+/**********************************
+ * Searching and retrieving
+ */
+
+static int cmd_search_pqf( char *args[], char *outbuff)
+{
+ int hits=0;
+ char *set=args[1];
+ char qry[MAX_ARG_LEN]="";
+ int i=2;
+ int rc;
+ while (args[i])
+ {
+ strcat(qry, args[i++]);
+ strcat(qry, " ");
+ }
+ rc=zebra_search_PQF(zh, qry, set, &hits);
+ if (0==rc)
+ {
+ sprintf(qry,"%d hits found\n",hits);
+ strcat(outbuff,qry);
+ }
+ return rc;
+}
+
+static int cmd_find( char *args[], char *outbuff)
+{
+ char *setname="MyResultSet";
+ char qry[MAX_ARG_LEN]="";
+ int i=1;
+ int rc;
+ int hits=0;
+ if (0==strstr(args[0],"@attr"))
+ strcat(qry, "@attr 1=/ ");
+ while (args[i])
+ {
+ strcat(qry, args[i++]);
+ strcat(qry, " ");
+ }
+ if (!zh)
+ onecommand("quickstart", outbuff, "");
+ strcat(outbuff, "find ");
+ strcat(outbuff, qry);
+ strcat(outbuff, "\n");
+ rc=zebra_search_PQF(zh, qry, setname, &hits);
+ if (0==rc)
+ {
+ sprintf(qry,"%d hits found\n",hits);
+ strcat(outbuff,qry);
+ }
+ return rc;
+}
/**************************************)
* Command table, parser, and help
"Selects a database",
cmd_select_database},
{ "create_database", "basename",
- "Creates a database",
+ "Create database",
cmd_create_database},
+ { "drop_database", "basename",
+ "Drop database",
+ cmd_drop_database},
{ "begin_trans", "[rw]",
"Begins a transaction. rw=1 means write, otherwise read-only",
cmd_begin_trans},
"inserts (1), updates (2), or deletes (3) a record \n"
"record-id must be a unique identifier for the record",
cmd_exchange_record},
+ { "","Searching and retrieving:","",0},
+ { "search_pqf","setname query",
+ "search ",
+ cmd_search_pqf},
+ { "find","query",
+ "simplified search",
+ cmd_find},
+ { "f","query",
+ "simplified search",
+ cmd_find},
{ "", "Misc:","", 0},
{ "echo", "string",
"ouputs the string",
cmd_echo },
+ { "q", "",
+ "exits the program",
+ cmd_quit },
{ "quit", "",
"exits the program",
cmd_quit },