static int search_single_repo(struct repovec_t *repos, char *searchstring) { struct repo_t *repo; if (!config.targetrepo) { config.targetrepo = strsep(&searchstring, "/"); config.filter.glob.glob = searchstring; config.filter.glob.globlen = strlen(searchstring); config.filterby = FILTER_EXACT; } REPOVEC_FOREACH(repo, repos) { if (strcmp(repo->name, config.targetrepo) == 0) { struct result_t *result; int r; result = load_repo(repo); r = result->size == 0; result_print(result, config.raw ? 0 : result->max_prefixlen, config.eol); result_free(result); return r; } } /* repo not found */ fprintf(stderr, "error: repo not available: %s\n", config.targetrepo); return 1; }
/** * @brief default search oberver. * @param result Search Result. */ static void edax_observer(Result *result) { search_observer(result); if (log_is_open(edax_log)) { result_print(result, edax_log->f); putc('\n', edax_log->f); } }
static void nboard_observer(Result *result) { if (log_is_open(nboard_log)) { fprintf(nboard_log->f, "edax> "); result_print(result, nboard_log->f); putc('\n', nboard_log->f); } nboard_send("nodestats %lld %.2f", result->n_nodes, result->time); }