src/cli/lib/repo_compose.h \
src/cli/lib/repo_create.c \
src/cli/lib/repo_create.h \
+ src/cli/lib/repo_delete.c \
+ src/cli/lib/repo_delete.h \
src/cli/lib/repo_list.c \
src/cli/lib/repo_list.h \
src/cli/lib/repo_show.c \
#include "repo.h"
#include "repo_compose.h"
#include "repo_create.h"
+#include "repo_delete.h"
#include "repo_list.h"
#include "repo_show.h"
int cli_repo_client(void* data, int argc, char* argv[]) {
static const struct command commands[] = {
{ "create", cli_repo_create, 2, -1, 0 },
+ { "delete", cli_repo_delete, 2, 2, 0 },
{ "list", cli_repo_list, 1, 1, 0 },
{ "show", cli_repo_show, 2, 2, 0 },
{ NULL },
return r;
}
+
+PAKFIRE_EXPORT int pakfire_buildservice_delete_repo(struct pakfire_buildservice* service,
+ const char* distro, const char* name) {
+ struct pakfire_transfer* transfer = NULL;
+ struct json_object* response = NULL;
+ char* buffer = NULL;
+ size_t length = 0;
+ char url[PATH_MAX];
+ int r;
+
+ // Compose the URL
+ r = pakfire_string_format(url, "/api/v1/repos/%s/%s", distro, name);
+ if (r)
+ goto ERROR;
+
+ // Create a new transfer
+ r = pakfire_buildservice_create_transfer(&transfer, service, url);
+ if (r)
+ goto ERROR;
+
+ // Ask to DELETE
+ r = pakfire_downloader_transfer_set_method(transfer, PAKFIRE_METHOD_DELETE);
+ if (r)
+ goto ERROR;
+
+ // Enable authentication
+ r = pakfire_downloader_transfer_auth(transfer);
+ if (r)
+ goto ERROR;
+
+ // Write the response to the buffer
+ r = pakfire_downloader_transfer_set_output_buffer(transfer, &buffer, &length);
+ if (r)
+ goto ERROR;
+
+ // Run the transfer
+ r = pakfire_downloader_transfer_run(transfer, PAKFIRE_TRANSFER_NO_PROGRESS);
+ if (r)
+ goto ERROR;
+
+ // Parse the response
+ r = pakfire_buildservice_parse_response(service, transfer, buffer, length, &response);
+ if (r) {
+ CTX_ERROR(service->ctx, "Could not parse the response: %s\n", strerror(-r));
+ goto ERROR;
+ }
+
+ERROR:
+ if (transfer)
+ pakfire_downloader_transfer_unref(transfer);
+ if (response)
+ json_object_put(response);
+ if (buffer)
+ free(buffer);
+
+ return r;
+}
const char* distro, const char* name, struct json_object** repo);
int pakfire_buildservice_create_repo(struct pakfire_buildservice* service,
const char* distro, const char* name, const char* description, struct json_object** repo);
+int pakfire_buildservice_delete_repo(struct pakfire_buildservice* service,
+ const char* distro, const char* name);
#endif /* PAKFIRE_BUILDSERVICE_H */