diff options
Diffstat (limited to 'backend/pkgtools.cc')
| -rw-r--r-- | backend/pkgtools.cc | 60 |
1 files changed, 31 insertions, 29 deletions
diff --git a/backend/pkgtools.cc b/backend/pkgtools.cc index 083036a..6ffbaff 100644 --- a/backend/pkgtools.cc +++ b/backend/pkgtools.cc @@ -1,7 +1,11 @@ +/* + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + */ #include <curl/curl.h> #include <sqlite3.h> #include "pkgtools.h" -#include "utils.h" namespace slack { @@ -15,46 +19,45 @@ namespace slack { * * Returns: %TRUE on success, %FALSE otherwise. **/ -gboolean -Pkgtools::download (PkBackendJob *job, - gchar *dest_dir_name, gchar *pkg_name) noexcept +bool +Pkgtools::download (JobData *job_data, + char *dest_dir_name, char *pkg_name) noexcept { - gchar *dest_filename, *source_url; - gboolean ret = FALSE; - sqlite3_stmt *statement = NULL; - CURL *curl = NULL; - auto job_data = static_cast<JobData *> (pk_backend_job_get_user_data(job)); + char *dest_filename, *source_url; + bool ret = false; + sqlite3_stmt *statement = nullptr; + CURL *curl = nullptr; if ((sqlite3_prepare_v2(job_data->db, "SELECT location, (full_name || '.' || ext) FROM pkglist " "WHERE name LIKE @name AND repo_order = @repo_order", -1, &statement, - NULL) != SQLITE_OK)) - return FALSE; + nullptr) != SQLITE_OK)) + return false; sqlite3_bind_text(statement, 1, pkg_name, -1, SQLITE_TRANSIENT); sqlite3_bind_int(statement, 2, this->get_order ()); if (sqlite3_step(statement) == SQLITE_ROW) { - dest_filename = g_build_filename(dest_dir_name, sqlite3_column_text(statement, 1), NULL); + dest_filename = g_build_filename(dest_dir_name, sqlite3_column_text(statement, 1), nullptr); source_url = g_strconcat(this->get_mirror (), sqlite3_column_text(statement, 0), "/", sqlite3_column_text(statement, 1), - NULL); + nullptr); if (!g_file_test(dest_filename, G_FILE_TEST_EXISTS)) { if (get_file(&curl, source_url, dest_filename) == CURLE_OK) { - ret = TRUE; + ret = true; } } else { - ret = TRUE; + ret = true; } if (curl) @@ -71,24 +74,23 @@ Pkgtools::download (PkBackendJob *job, /** * slack::Pkgtools::install: - * @job: A #PkBackendJob. + * @job_data: A #JobData. * @pkg_name: Package name. * * Install a package. **/ void -Pkgtools::install (PkBackendJob *job, gchar *pkg_name) noexcept +Pkgtools::install (JobData *job_data, char *pkg_name) noexcept { - gchar *pkg_filename, *cmd_line; - sqlite3_stmt *statement = NULL; - auto job_data = static_cast<JobData *> (pk_backend_job_get_user_data(job)); + char *pkg_filename, *cmd_line; + sqlite3_stmt *statement = nullptr; if ((sqlite3_prepare_v2(job_data->db, "SELECT (full_name || '.' || ext) FROM pkglist " "WHERE name LIKE @name AND repo_order = @repo_order", -1, &statement, - NULL) != SQLITE_OK)) + nullptr) != SQLITE_OK)) { return; } @@ -103,9 +105,9 @@ Pkgtools::install (PkBackendJob *job, gchar *pkg_name) noexcept "PackageKit", "downloads", sqlite3_column_text(statement, 0), - NULL); - cmd_line = g_strconcat("/sbin/upgradepkg --install-new ", pkg_filename, NULL); - g_spawn_command_line_sync(cmd_line, NULL, NULL, NULL, NULL); + nullptr); + cmd_line = g_strconcat("/sbin/upgradepkg --install-new ", pkg_filename, nullptr); + g_spawn_command_line_sync(cmd_line, nullptr, nullptr, nullptr, nullptr); g_free(cmd_line); g_free(pkg_filename); @@ -124,7 +126,7 @@ Pkgtools::~Pkgtools () noexcept * * Returns: Repository name. **/ -const gchar * +const char * Pkgtools::get_name () const noexcept { return this->name; @@ -137,7 +139,7 @@ Pkgtools::get_name () const noexcept * * Returns: Repository mirror. **/ -const gchar * +const char * Pkgtools::get_mirror () const noexcept { return this->mirror; @@ -164,12 +166,12 @@ Pkgtools::get_order () const noexcept * * Returns: %TRUE if the package is blacklisted, %FALSE otherwise. **/ -gboolean -Pkgtools::is_blacklisted (const gchar *pkg) const noexcept +bool +Pkgtools::is_blacklisted (const char *pkg) const noexcept { return this->blacklist && g_regex_match (this->blacklist, - pkg, static_cast<GRegexMatchFlags> (0), NULL); + pkg, static_cast<GRegexMatchFlags> (0), nullptr); } } |
