libmp/examples/client/main.c

54 lines
1.2 KiB
C
Raw Normal View History

2024-06-20 00:34:32 +00:00
#include "../../include/all.h"
2024-06-20 00:34:32 +00:00
#include <stdio.h>
#include <stdlib.h>
#define DATA_DIR "/tmp/data"
2024-06-20 00:34:32 +00:00
int main(int argc, char *argv[]) {
int ret = EXIT_FAILURE;
lm_pkg_t *pkg = NULL;
lm_ctx_t ctx;
2024-06-20 00:34:32 +00:00
2024-06-20 22:36:56 +00:00
if (argc != 2) {
2024-06-20 00:34:32 +00:00
printf("usage: %s <pool url>\n", argv[0]);
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;
}
if (lm_ctx_pool_add(&ctx, "base", argv[1]) == NULL) {
2024-06-20 00:34:32 +00:00
printf("failed to add pool: %s (%d)\n", lm_strerror(), lm_error());
goto end;
}
lm_ctx_ping(&ctx, NULL, NULL);
lm_ctx_sync(&ctx, true, NULL, NULL);
if ((pkg = lm_ctx_find(&ctx, "which", NULL)) == NULL) {
printf("failed to find package: %s (%d)", lm_strerror(), lm_error());
goto end;
}
if (!lm_ctx_download(&ctx, pkg, NULL, NULL)) {
printf("failed to download package: %s (%d)", lm_strerror(), lm_error());
goto end;
}
if (!lm_ctx_install(&ctx, pkg, NULL, NULL)) {
printf("failed to install the package: %s (%d)\n", lm_strerror(), lm_error());
2024-07-02 01:44:07 +00:00
goto end;
}
2024-06-20 00:34:32 +00:00
ret = EXIT_SUCCESS;
end:
lm_ctx_free(&ctx);
return ret;
}