X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=index%2Fupdate_path.c;fp=index%2Fupdate_path.c;h=591b050333afb51b9c53e623d1e7b0d4dc8cf690;hb=4097bac1dce126e79ce1550fad8b2034a311ff80;hp=93d6b7fd199bfba751335a30f572e32407614d19;hpb=0f22e8ea0099e3fbf082ebd37095000be7ff0c45;p=idzebra-moved-to-github.git diff --git a/index/update_path.c b/index/update_path.c index 93d6b7f..591b050 100644 --- a/index/update_path.c +++ b/index/update_path.c @@ -1,4 +1,4 @@ -/* $Id: update_path.c,v 1.4 2007-10-29 09:25:41 adam Exp $ +/* $Id: update_path.c,v 1.5 2007-12-20 11:15:42 adam Exp $ Copyright (C) 1995-2007 Index Data ApS @@ -37,8 +37,8 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA #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; @@ -63,10 +63,10 @@ static void repositoryExtractR(ZebraHandle zh, int deleteFlag, char *rep, 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; } } @@ -107,7 +107,9 @@ void repositoryShow(ZebraHandle zh, const char *path) } 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]; @@ -130,38 +132,26 @@ static void repositoryExtract(ZebraHandle zh, 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; }