libmp/examples/client/check.c

58 lines
1.2 KiB
C
Raw Normal View History

#include "../../include/all.h"
#include "./common.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char *argv[]) {
int ret = EXIT_FAILURE;
lm_pkg_t pkg;
lm_ctx_t ctx;
lm_package_init(&pkg);
if (argc != 2) {
printf("usage: %s <package name>\n", argv[0]);
return ret;
}
2024-07-11 04:52:00 +00:00
if (!mkdir_ifnot(ROOT_DIR)) {
printf("failed to create root dir: %s\n", ROOT_DIR);
return ret;
}
lm_ctx_init(&ctx);
if (!lm_ctx_set_data(&ctx, DATA_DIR)) {
printf("failed to set data dir: %s (%d)\n", lm_strerror(), lm_error());
goto end;
}
2024-07-11 04:52:00 +00:00
if (!lm_ctx_set_root(&ctx, ROOT_DIR)) {
printf("failed to set root dir: %s (%d)\n", lm_strerror(), lm_error());
goto end;
}
if (!lm_ctx_database_find(&ctx, &pkg, argv[1], NULL)) {
printf("failed to find package: %s (%d)\n", lm_strerror(), lm_error());
goto end;
}
printf("checking %s (%s)...\n", pkg.name, pkg.version);
if (!lm_ctx_check(&ctx, &pkg, NULL, NULL)) {
printf("failed to verify the package: %s (%d)\n", lm_strerror(), lm_error());
goto end;
}
2024-07-11 04:52:00 +00:00
printf("package check was successful!\n");
ret = EXIT_SUCCESS;
end:
lm_package_free(&pkg);
lm_ctx_free(&ctx);
return ret;
}