summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonathan Conder <jonno.conder@gmail.com>2011-10-26 19:47:32 +1300
committerJonathan Conder <jonno.conder@gmail.com>2012-01-17 12:54:09 +1300
commitf2db7e1a74beb3738257ccac2f80b4a62f84fd4a (patch)
tree3d20dc662b828ef6281e433ee003bc55ab7834e6
parent7dbee21a7adbc25856b53532d0fe55f272f580bb (diff)
alpm: add new error codes
-rw-r--r--backends/alpm/pk-backend-error.c281
1 files changed, 147 insertions, 134 deletions
diff --git a/backends/alpm/pk-backend-error.c b/backends/alpm/pk-backend-error.c
index 255f1fbfa..ac8fd17dc 100644
--- a/backends/alpm/pk-backend-error.c
+++ b/backends/alpm/pk-backend-error.c
@@ -33,140 +33,153 @@ pk_backend_error (PkBackend *self, GError *error)
g_return_if_fail (self != NULL);
g_return_if_fail (error != NULL);
- if (error->domain == ALPM_ERROR) {
- switch (error->code) {
- case PM_ERR_MEMORY:
- case PM_ERR_SYSTEM:
- code = PK_ERROR_ENUM_OOM;
- break;
-
- case PM_ERR_BADPERMS:
- code = PK_ERROR_ENUM_NOT_AUTHORIZED;
- break;
-
- case PM_ERR_NOT_A_FILE:
- case PM_ERR_NOT_A_DIR:
- code = PK_ERROR_ENUM_FILE_NOT_FOUND;
- break;
-
- case PM_ERR_WRONG_ARGS:
- case PM_ERR_HANDLE_NULL:
- case PM_ERR_DB_NULL:
- case PM_ERR_TRANS_NULL:
- case PM_ERR_TRANS_NOT_INITIALIZED:
- case PM_ERR_TRANS_NOT_PREPARED:
- case PM_ERR_TRANS_NOT_LOCKED:
- case PM_ERR_INVALID_REGEX:
- code = PK_ERROR_ENUM_INTERNAL_ERROR;
- break;
-
- case PM_ERR_DISK_SPACE:
- code = PK_ERROR_ENUM_NO_SPACE_ON_DEVICE;
- break;
-
- case PM_ERR_HANDLE_NOT_NULL:
- case PM_ERR_DB_NOT_NULL:
- case PM_ERR_TRANS_NOT_NULL:
- code = PK_ERROR_ENUM_FAILED_INITIALIZATION;
- break;
-
- case PM_ERR_HANDLE_LOCK:
- code = PK_ERROR_ENUM_CANNOT_GET_LOCK;
- break;
-
- case PM_ERR_DB_OPEN:
- case PM_ERR_DB_NOT_FOUND:
- case PM_ERR_PKG_REPO_NOT_FOUND:
- code = PK_ERROR_ENUM_REPO_NOT_FOUND;
- break;
-
- case PM_ERR_DB_CREATE:
- code = PK_ERROR_ENUM_CANNOT_WRITE_REPO_CONFIG;
- break;
-
- case PM_ERR_DB_VERSION:
- case PM_ERR_DB_REMOVE:
- code = PK_ERROR_ENUM_REPO_CONFIGURATION_ERROR;
- break;
-
- case PM_ERR_DB_WRITE:
- code = PK_ERROR_ENUM_REPO_NOT_AVAILABLE;
- break;
-
- case PM_ERR_SERVER_BAD_URL:
- code = PK_ERROR_ENUM_REPO_CONFIGURATION_ERROR;
- break;
-
- case PM_ERR_SERVER_NONE:
- code = PK_ERROR_ENUM_NO_MORE_MIRRORS_TO_TRY;
- break;
-
- case PM_ERR_TRANS_DUP_TARGET:
- case PM_ERR_TRANS_ABORT:
- code = PK_ERROR_ENUM_TRANSACTION_ERROR;
- break;
-
- case PM_ERR_TRANS_TYPE:
- code = PK_ERROR_ENUM_CANNOT_CANCEL;
- break;
-
- case PM_ERR_PKG_NOT_FOUND:
- code = PK_ERROR_ENUM_PACKAGE_NOT_FOUND;
- break;
-
- case PM_ERR_PKG_IGNORED:
- code = PK_ERROR_ENUM_PACKAGE_INSTALL_BLOCKED;
- break;
-
- case PM_ERR_PKG_INVALID:
- case PM_ERR_PKG_OPEN:
- case PM_ERR_PKG_INVALID_NAME:
- case PM_ERR_DLT_INVALID:
- code = PK_ERROR_ENUM_INVALID_PACKAGE_FILE;
- break;
-
- case PM_ERR_PKG_CANT_REMOVE:
- code = PK_ERROR_ENUM_PACKAGE_FAILED_TO_REMOVE;
- break;
-
- case PM_ERR_PKG_INVALID_ARCH:
- code = PK_ERROR_ENUM_INCOMPATIBLE_ARCHITECTURE;
- break;
-
- case PM_ERR_DLT_PATCHFAILED:
- code = PK_ERROR_ENUM_PACKAGE_FAILED_TO_BUILD;
- break;
-
- case PM_ERR_UNSATISFIED_DEPS:
- code = PK_ERROR_ENUM_DEP_RESOLUTION_FAILED;
- break;
-
- case PM_ERR_CONFLICTING_DEPS:
- code = PK_ERROR_ENUM_PACKAGE_CONFLICTS;
- break;
-
- case PM_ERR_FILE_CONFLICTS:
- code = PK_ERROR_ENUM_FILE_CONFLICTS;
- break;
-
- case PM_ERR_RETRIEVE:
- case PM_ERR_LIBFETCH:
- case PM_ERR_EXTERNAL_DOWNLOAD:
- code = PK_ERROR_ENUM_PACKAGE_DOWNLOAD_FAILED;
- break;
-
- case PM_ERR_LIBARCHIVE:
- code = PK_ERROR_ENUM_LOCAL_INSTALL_FAILED;
- break;
-
- case PM_ERR_CONFIG_INVALID:
- code = PK_ERROR_ENUM_CANNOT_REMOVE_SYSTEM_PACKAGE;
- break;
-
- case PM_ERR_PKG_HELD:
- code = PK_ERROR_ENUM_CANNOT_REMOVE_SYSTEM_PACKAGE;
- break;
- }
+ if (error->domain != ALPM_ERROR) {
+ pk_backend_error_code (self, code, "%s", error->message);
+ return;
+ }
+
+ switch (error->code) {
+ case PM_ERR_MEMORY:
+ case PM_ERR_SYSTEM:
+ code = PK_ERROR_ENUM_OOM;
+ break;
+
+ case PM_ERR_BADPERMS:
+ code = PK_ERROR_ENUM_NOT_AUTHORIZED;
+ break;
+
+ case PM_ERR_NOT_A_FILE:
+ case PM_ERR_NOT_A_DIR:
+ code = PK_ERROR_ENUM_FILE_NOT_FOUND;
+ break;
+
+ case PM_ERR_WRONG_ARGS:
+ case PM_ERR_HANDLE_NULL:
+ case PM_ERR_DB_NULL:
+ case PM_ERR_TRANS_NULL:
+ case PM_ERR_TRANS_NOT_INITIALIZED:
+ case PM_ERR_TRANS_NOT_PREPARED:
+ case PM_ERR_TRANS_NOT_LOCKED:
+ case PM_ERR_INVALID_REGEX:
+ code = PK_ERROR_ENUM_INTERNAL_ERROR;
+ break;
+
+ case PM_ERR_DISK_SPACE:
+ code = PK_ERROR_ENUM_NO_SPACE_ON_DEVICE;
+ break;
+
+ case PM_ERR_HANDLE_NOT_NULL:
+ case PM_ERR_DB_NOT_NULL:
+ case PM_ERR_TRANS_NOT_NULL:
+ code = PK_ERROR_ENUM_FAILED_INITIALIZATION;
+ break;
+
+ case PM_ERR_HANDLE_LOCK:
+ code = PK_ERROR_ENUM_CANNOT_GET_LOCK;
+ break;
+
+ case PM_ERR_DB_OPEN:
+ case PM_ERR_DB_NOT_FOUND:
+ case PM_ERR_PKG_REPO_NOT_FOUND:
+ code = PK_ERROR_ENUM_REPO_NOT_FOUND;
+ break;
+
+ case PM_ERR_DB_CREATE:
+ code = PK_ERROR_ENUM_CANNOT_WRITE_REPO_CONFIG;
+ break;
+
+ case PM_ERR_DB_VERSION:
+ case PM_ERR_DB_REMOVE:
+ case PM_ERR_SERVER_BAD_URL:
+ case PM_ERR_SIG_MISSINGDIR:
+ code = PK_ERROR_ENUM_REPO_CONFIGURATION_ERROR;
+ break;
+
+ case PM_ERR_DB_WRITE:
+ code = PK_ERROR_ENUM_REPO_NOT_AVAILABLE;
+ break;
+
+ case PM_ERR_SERVER_NONE:
+ code = PK_ERROR_ENUM_NO_MORE_MIRRORS_TO_TRY;
+ break;
+
+ case PM_ERR_TRANS_DUP_TARGET:
+ case PM_ERR_TRANS_ABORT:
+ code = PK_ERROR_ENUM_TRANSACTION_ERROR;
+ break;
+
+ case PM_ERR_TRANS_TYPE:
+ code = PK_ERROR_ENUM_CANNOT_CANCEL;
+ break;
+
+ case PM_ERR_PKG_NOT_FOUND:
+ code = PK_ERROR_ENUM_PACKAGE_NOT_FOUND;
+ break;
+
+ case PM_ERR_PKG_IGNORED:
+ code = PK_ERROR_ENUM_PACKAGE_INSTALL_BLOCKED;
+ break;
+
+ case PM_ERR_PKG_INVALID:
+ case PM_ERR_PKG_OPEN:
+ case PM_ERR_PKG_INVALID_NAME:
+ case PM_ERR_DLT_INVALID:
+ code = PK_ERROR_ENUM_INVALID_PACKAGE_FILE;
+ break;
+
+ case PM_ERR_PKG_CANT_REMOVE:
+ code = PK_ERROR_ENUM_PACKAGE_FAILED_TO_REMOVE;
+ break;
+
+ case PM_ERR_PKG_INVALID_ARCH:
+ code = PK_ERROR_ENUM_INCOMPATIBLE_ARCHITECTURE;
+ break;
+
+ case PM_ERR_SIG_INVALID:
+ code = PK_ERROR_ENUM_BAD_GPG_SIGNATURE;
+ break;
+
+ case PM_ERR_SIG_UNKNOWN:
+ code = PK_ERROR_ENUM_MISSING_GPG_SIGNATURE;
+ break;
+
+ case PM_ERR_DLT_PATCHFAILED:
+ code = PK_ERROR_ENUM_PACKAGE_FAILED_TO_BUILD;
+ break;
+
+ case PM_ERR_UNSATISFIED_DEPS:
+ code = PK_ERROR_ENUM_DEP_RESOLUTION_FAILED;
+ break;
+
+ case PM_ERR_CONFLICTING_DEPS:
+ code = PK_ERROR_ENUM_PACKAGE_CONFLICTS;
+ break;
+
+ case PM_ERR_FILE_CONFLICTS:
+ code = PK_ERROR_ENUM_FILE_CONFLICTS;
+ break;
+
+ case PM_ERR_RETRIEVE:
+ case PM_ERR_LIBCURL:
+ case PM_ERR_EXTERNAL_DOWNLOAD:
+ code = PK_ERROR_ENUM_PACKAGE_DOWNLOAD_FAILED;
+ break;
+
+ case PM_ERR_LIBARCHIVE:
+ code = PK_ERROR_ENUM_LOCAL_INSTALL_FAILED;
+ break;
+
+ case PM_ERR_GPGME:
+ code = PK_ERROR_ENUM_GPG_FAILURE;
+ break;
+
+ case PM_ERR_CONFIG_INVALID:
+ code = PK_ERROR_ENUM_FAILED_CONFIG_PARSING;
+ break;
+
+ case PM_ERR_PKG_HELD:
+ code = PK_ERROR_ENUM_CANNOT_REMOVE_SYSTEM_PACKAGE;
+ break;
}
pk_backend_error_code (self, code, "%s", error->message);