X-Git-Url: http://git.indexdata.com/?p=idzebra-moved-to-github.git;a=blobdiff_plain;f=index%2Fzebraidx.c;h=c41190195493277e2c6567bedbb8ec6946ef3a24;hp=27a0a3560f1c4feaff4d266e609841e351edaf10;hb=16853a7593f10680ea8d6895aa0720b9af3779e6;hpb=e05cb2631696372c6bdabcabe22401efe9645ab7 diff --git a/index/zebraidx.c b/index/zebraidx.c index 27a0a35..c411901 100644 --- a/index/zebraidx.c +++ b/index/zebraidx.c @@ -1,8 +1,5 @@ -/* $Id: zebraidx.c,v 1.3 2006-12-22 12:14:25 adam Exp $ - Copyright (C) 1995-2006 - Index Data ApS - -This file is part of the Zebra server. +/* This file is part of the Zebra server. + Copyright (C) 1994-2010 Index Data 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 @@ -31,15 +28,19 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA #include #endif +#if YAZ_HAVE_ICU +#include +#endif #include #include +#include #include char *prog; static void filter_cb(void *cd, const char *name) { - puts (name); + puts(name); } static void show_filters(ZebraService zs) @@ -47,7 +48,7 @@ static void show_filters(ZebraService zs) zebra_filter_info(zs, 0, filter_cb); } -int main (int argc, char **argv) +int main(int argc, char **argv) { int ret; int cmd = 0; @@ -66,17 +67,15 @@ int main (int argc, char **argv) ZebraService zs = 0; ZebraHandle zh = 0; - nmem_init (); - #ifdef WIN32 #else sprintf(nbuf, "%.40s(%ld)", *argv, (long) getpid()); - yaz_log_init_prefix (nbuf); + yaz_log_init_prefix(nbuf); #endif prog = *argv; if (argc < 2) { - fprintf (stderr, "%s [options] command ...\n" + fprintf(stderr, "%s [options] command ...\n" "Commands:\n" " update Update index with files below .\n" " If is empty filenames are read from stdin.\n" @@ -99,7 +98,7 @@ int main (int argc, char **argv) " -f Display information for the first records.\n" " -V Show version.\n", *argv ); - exit (1); + exit(1); } res_set(default_res, "profilePath", DEFAULT_PROFILE_PATH); res_set(default_res, "modulePath", DEFAULT_MODULE_PATH); @@ -115,34 +114,36 @@ int main (int argc, char **argv) zs = zebra_start_res(config, default_res, res); if (!zs) { - yaz_log (YLOG_FATAL, "Cannot read config %s", config); - exit (1); + yaz_log(YLOG_FATAL, "Cannot read config %s", config); + exit(1); } - zh = zebra_open (zs, 0); - zebra_shadow_enable (zh, enable_commit); + zh = zebra_open(zs, 0); + zebra_shadow_enable(zh, enable_commit); } if (database && - zebra_select_database (zh, database) == ZEBRA_FAIL) + zebra_select_database(zh, database) == ZEBRA_FAIL) { yaz_log(YLOG_FATAL, "Could not select database %s " "errCode=%d", database, zebra_errCode(zh) ); - exit (1); + exit(1); } - if (!strcmp (arg, "update")) + if (!strcmp(arg, "update")) cmd = 'u'; - else if (!strcmp (arg, "update1")) + else if (!strcmp(arg, "update1")) cmd = 'U'; - else if (!strcmp (arg, "update2")) + else if (!strcmp(arg, "update2")) cmd = 'm'; - else if (!strcmp (arg, "dump")) + else if (!strcmp(arg, "dump")) cmd = 's'; - else if (!strcmp (arg, "del") || !strcmp(arg, "delete")) + else if (!strcmp(arg, "del") || !strcmp(arg, "delete")) cmd = 'd'; - else if (!strcmp (arg, "init")) + else if (!strcmp(arg, "adelete")) + cmd = 'a'; + else if (!strcmp(arg, "init")) { - zebra_init (zh); + zebra_init(zh); } else if (!strcmp(arg, "drop")) { @@ -152,34 +153,39 @@ int main (int argc, char **argv) { cmd = 'C'; } - else if (!strcmp (arg, "commit")) + else if (!strcmp(arg, "commit")) { - zebra_commit (zh); + zebra_commit(zh); } - else if (!strcmp (arg, "clean")) + else if (!strcmp(arg, "clean")) { - zebra_clean (zh); + zebra_clean(zh); } - else if (!strcmp (arg, "stat") || !strcmp (arg, "status")) + else if (!strcmp(arg, "stat") || !strcmp(arg, "status")) { - zebra_register_statistics (zh,0); + zebra_register_statistics(zh, 0); } - else if (!strcmp (arg, "dumpdict")) + else if (!strcmp(arg, "dumpdict")) { - zebra_register_statistics (zh,1); + zebra_register_statistics(zh, 1); } - else if (!strcmp (arg, "compact")) + else if (!strcmp(arg, "compact")) { - zebra_compact (zh); + zebra_compact(zh); } - else if (!strcmp (arg, "filters")) + else if (!strcmp(arg, "filters")) { show_filters(zs); } + else if (!strcmp(arg, "check")) + { + if (zebra_register_check(zh) != ZEBRA_OK) + yaz_log(YLOG_WARN, "register check failed"); + } else { - yaz_log (YLOG_FATAL, "unknown command: %s", arg); - exit (1); + yaz_log(YLOG_FATAL, "unknown command: %s", arg); + exit(1); } } else @@ -188,19 +194,22 @@ int main (int argc, char **argv) if (!trans_started) { trans_started=1; - if (zebra_begin_trans (zh, 1) != ZEBRA_OK) + if (zebra_begin_trans(zh, 1) != ZEBRA_OK) exit(1); } switch (cmd) { case 'u': - res = zebra_repository_update (zh, arg); + res = zebra_repository_index(zh, arg, action_update); break; case 'd': - res = zebra_repository_delete (zh, arg); + res = zebra_repository_index(zh, arg, action_delete); + break; + case 'a': + res = zebra_repository_index(zh, arg, action_a_delete); break; case 's': - res = zebra_repository_show (zh, arg); + res = zebra_repository_show(zh, arg); nsections = 0; break; case 'C': @@ -219,36 +228,38 @@ int main (int argc, char **argv) zebra_errString(zh), add ? add : ""); if (trans_started) - if (zebra_end_trans (zh) != ZEBRA_OK) - yaz_log (YLOG_WARN, "zebra_end_trans failed"); + if (zebra_end_trans(zh) != ZEBRA_OK) + yaz_log(YLOG_WARN, "zebra_end_trans failed"); - zebra_close (zh); - zebra_stop (zs); + zebra_close(zh); + zebra_stop(zs); exit(1); } - log_event_end (NULL, NULL); + log_event_end(NULL, NULL); } } else if (ret == 'V') { - printf("Zebra %s %s\n", ZEBRAVER, ZEBRADATE); - printf(" (C) 1994-2006, Index Data ApS\n"); -#ifdef WIN32 -#ifdef _DEBUG - printf(" WIN32 Debug\n"); -#else - printf(" WIN32 Release\n"); -#endif -#endif -#if HAVE_BZLIB_H - printf("Using: libbzip2, (C) 1996-1999 Julian R Seward. All rights reserved.\n"); + char version_str[20]; + char sys_str[80]; + zebra_get_version(version_str, sys_str); + + printf("Zebra %s\n", version_str); + printf("(C) 1994-2010, Index Data ApS\n"); + printf("Zebra is free software, covered by the GNU General Public License, and you are\n"); + printf("welcome to change it and/or distribute copies of it under certain conditions.\n"); + printf("SHA1 ID: %s\n", sys_str); + if (strcmp(version_str, ZEBRAVER)) + printf("zebraidx compiled version %s\n", ZEBRAVER); +#if YAZ_HAVE_ICU + printf("Using ICU\n"); #endif } else if (ret == 'v') - yaz_log_init_level (yaz_log_mask_str(arg)); + yaz_log_init_level(yaz_log_mask_str(arg)); else if (ret == 'l') - yaz_log_init_file (arg); + yaz_log_init_file(arg); else if (ret == 'm') res_set(res, "memMax", arg); else if (ret == 'd') @@ -268,26 +279,26 @@ int main (int argc, char **argv) else if (ret == 'L') res_set(res, "followLinks", "0"); else - yaz_log (YLOG_WARN, "unknown option '-%s'", arg); + yaz_log(YLOG_WARN, "unknown option '-%s'", arg); } /* while arg */ if (trans_started) - if (zebra_end_trans (zh) != ZEBRA_OK) - yaz_log (YLOG_WARN, "zebra_end_trans failed"); + if (zebra_end_trans(zh) != ZEBRA_OK) + yaz_log(YLOG_WARN, "zebra_end_trans failed"); - zebra_close (zh); - zebra_stop (zs); + zebra_close(zh); + zebra_stop(zs); res_close(res); res_close(default_res); - nmem_exit(); - exit (0); + exit(0); return 0; } /* * Local variables: * c-basic-offset: 4 + * c-file-style: "Stroustrup" * indent-tabs-mode: nil * End: * vim: shiftwidth=4 tabstop=8 expandtab