2024-06-20 00:34:32 +00:00
|
|
|
#include "../../include/all.h"
|
2024-07-08 04:24:39 +00:00
|
|
|
#include "./common.h"
|
2024-06-27 20:05:39 +00:00
|
|
|
|
2024-06-20 00:34:32 +00:00
|
|
|
#include <stdio.h>
|
|
|
|
#include <stdlib.h>
|
2024-07-06 00:48:23 +00:00
|
|
|
#include <string.h>
|
2024-06-20 00:34:32 +00:00
|
|
|
|
|
|
|
int main(int argc, char *argv[]) {
|
2024-07-08 04:24:39 +00:00
|
|
|
int ret = EXIT_FAILURE;
|
|
|
|
lm_pkg_t pkg;
|
|
|
|
lm_ctx_t ctx;
|
2024-06-20 00:34:32 +00:00
|
|
|
|
2024-06-20 22:36:56 +00:00
|
|
|
if (argc != 2) {
|
2024-07-08 04:24:39 +00:00
|
|
|
printf("usage: %s <package name>\n", argv[0]);
|
2024-06-20 00:34:32 +00:00
|
|
|
return ret;
|
|
|
|
}
|
|
|
|
|
2024-07-06 00:48:23 +00:00
|
|
|
if (!mkdir_ifnot(ROOT_DIR)) {
|
2024-07-08 04:24:39 +00:00
|
|
|
printf("failed to create root dir: %s\n", ROOT_DIR);
|
2024-07-06 00:48:23 +00:00
|
|
|
return ret;
|
|
|
|
}
|
|
|
|
|
2024-06-20 00:34:32 +00:00
|
|
|
lm_ctx_init(&ctx);
|
|
|
|
|
2024-06-27 20:05:39 +00:00
|
|
|
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-06 00:48:23 +00:00
|
|
|
if (!lm_ctx_set_temp(&ctx, TEMP_DIR)) {
|
|
|
|
printf("failed to set temp dir: %s (%d)\n", lm_strerror(), lm_error());
|
|
|
|
goto end;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (!lm_ctx_set_root(&ctx, ROOT_DIR)) {
|
|
|
|
printf("failed to set root dir: %s (%d)\n", lm_strerror(), lm_error());
|
|
|
|
goto end;
|
|
|
|
}
|
|
|
|
|
2024-07-08 04:24:39 +00:00
|
|
|
if (!lm_ctx_database_find(&ctx, &pkg, argv[1])) {
|
2024-07-06 00:48:23 +00:00
|
|
|
printf("failed to find package: %s (%d)\n", lm_strerror(), lm_error());
|
2024-07-05 13:27:11 +00:00
|
|
|
goto end;
|
|
|
|
}
|
|
|
|
|
2024-07-08 04:24:39 +00:00
|
|
|
if (!lm_ctx_remove(&ctx, &pkg, NULL, NULL)) {
|
|
|
|
printf("failed to remove 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;
|
|
|
|
}
|