X-Git-Url: https://git.ozlabs.org/?a=blobdiff_plain;f=tools%2Fccanlint%2Fcompulsory_tests%2Fhas_info.c;h=a9a6c1c993a77c532515fe5c92eef282cccafba9;hb=2926cafb52b9d95646d9dafa877d53f2368d8b2c;hp=974967bfa2377361a6b984ed9d50c739c996dc8e;hpb=501b31cddfaa3e8a4374dc84f6f75d07dd2d0abb;p=ccan-lca-2011.git diff --git a/tools/ccanlint/compulsory_tests/has_info.c b/tools/ccanlint/compulsory_tests/has_info.c index 974967b..a9a6c1c 100644 --- a/tools/ccanlint/compulsory_tests/has_info.c +++ b/tools/ccanlint/compulsory_tests/has_info.c @@ -10,20 +10,22 @@ #include #include #include +#include -static void *check_has_info(struct manifest *m) +static void check_has_info(struct manifest *m, + bool keep, + unsigned int *timeleft, + struct score *score) { - if (m->info_file) - return NULL; - return m; -} - -static const char *describe_has_info(struct manifest *m, void *check_result) -{ - return "You have no _info file.\n\n" + if (m->info_file) { + score->pass = true; + score->score = score->total; + } else { + score->error = "You have no _info file.\n\n" "The file _info contains the metadata for a ccan package: things\n" "like the dependencies, the documentation for the package as a whole\n" "and license information.\n"; + } } static const char template[] = @@ -52,29 +54,32 @@ static const char template[] = " return 1;\n" "}\n"; -static void create_info_template(struct manifest *m, void *check_result) +static void create_info_template(struct manifest *m, struct score *score) { FILE *info; + const char *filename; if (!ask("Should I create a template _info file for you?")) return; - info = fopen("_info", "w"); + filename = talloc_asprintf(m, "%s/%s", m->dir, "_info"); + info = fopen(filename, "w"); if (!info) - err(1, "Trying to create a template _info"); + err(1, "Trying to create a template _info in %s", filename); if (fprintf(info, template, m->basename) < 0) { - unlink_noerr("_info"); - err(1, "Writing template into _info"); + unlink_noerr(filename); + err(1, "Writing template into %s", filename); } fclose(info); } -struct ccanlint has_info = { - .name = "Has _info file", +struct ccanlint info_exists = { + .key = "info_exists", + .name = "Module has _info file", .check = check_has_info, - .describe = describe_has_info, .handle = create_info_template, + .needs = "" }; -REGISTER_TEST(has_info, NULL); +REGISTER_TEST(info_exists);