-/* $Id: update_path.c,v 1.4 2007-10-29 09:25:41 adam Exp $
- Copyright (C) 1995-2007
- Index Data ApS
-
-This file is part of the Zebra server.
+/* This file is part of the Zebra server.
+ Copyright (C) 1994-2011 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
*/
+#if HAVE_CONFIG_H
+#include <config.h>
+#endif
#include <stdio.h>
#include <assert.h>
#include <sys/types.h>
#include "index.h"
-static void repositoryExtractR(ZebraHandle zh, int deleteFlag, char *rep,
- int level)
+static void repositoryExtractR(ZebraHandle zh, char *rep, int level,
+ enum zebra_recctrl_action_t action)
{
struct dir_entry *e;
int i;
switch (e[i].kind)
{
case dirs_file:
- zebra_extract_file(zh, NULL, rep, deleteFlag);
+ zebra_extract_file(zh, NULL, rep, action);
break;
case dirs_dir:
- repositoryExtractR(zh, deleteFlag, rep, level+1);
+ repositoryExtractR(zh, rep, level+1, action);
break;
}
}
}
static void repositoryExtract(ZebraHandle zh,
- int deleteFlag, const char *path)
+ const char *path,
+ enum zebra_recctrl_action_t action)
+
{
struct stat sbuf;
char src[1024];
if (ret == -1)
yaz_log(YLOG_WARN|YLOG_ERRNO, "Cannot access path %s", src);
else if (S_ISREG(sbuf.st_mode))
- zebra_extract_file(zh, NULL, src, deleteFlag);
+ zebra_extract_file(zh, NULL, src, action);
else if (S_ISDIR(sbuf.st_mode))
- repositoryExtractR(zh, deleteFlag, src, 0);
+ repositoryExtractR(zh, src, 0, action);
else
yaz_log(YLOG_WARN, "Skipping path %s", src);
}
-static void repositoryExtractG(ZebraHandle zh, const char *path,
- int deleteFlag)
+
+ZEBRA_RES zebra_update_from_path(ZebraHandle zh, const char *path,
+ enum zebra_recctrl_action_t action)
{
if (!strcmp(path, "") || !strcmp(path, "-"))
{
char src[1024];
while (scanf("%1020s", src) == 1)
- repositoryExtract(zh, deleteFlag, src);
+ repositoryExtract(zh, src, action);
}
else
- repositoryExtract(zh, deleteFlag, path);
-}
-
-ZEBRA_RES zebra_update_from_path(ZebraHandle zh, const char *path)
-{
- assert(path);
- repositoryExtractG(zh, path, 0);
- return ZEBRA_OK;
-}
-
-ZEBRA_RES zebra_delete_from_path(ZebraHandle zh, const char *path)
-{
- assert(path);
- repositoryExtractG(zh, path, 1);
+ repositoryExtract(zh, path, action);
return ZEBRA_OK;
}
/*
* Local variables:
* c-basic-offset: 4
+ * c-file-style: "Stroustrup"
* indent-tabs-mode: nil
* End:
* vim: shiftwidth=4 tabstop=8 expandtab