[Midnightbsd-cvs] src [7312] trunk/lib/libmport/delete_primative.c: Cleanup formatting so this is more readable.
laffer1 at midnightbsd.org
laffer1 at midnightbsd.org
Sat Sep 26 12:25:00 EDT 2015
Revision: 7312
http://svnweb.midnightbsd.org/src/?rev=7312
Author: laffer1
Date: 2015-09-26 12:25:00 -0400 (Sat, 26 Sep 2015)
Log Message:
-----------
Cleanup formatting so this is more readable.
Modified Paths:
--------------
trunk/lib/libmport/delete_primative.c
Modified: trunk/lib/libmport/delete_primative.c
===================================================================
--- trunk/lib/libmport/delete_primative.c 2015-09-26 16:01:16 UTC (rev 7311)
+++ trunk/lib/libmport/delete_primative.c 2015-09-26 16:25:00 UTC (rev 7312)
@@ -48,278 +48,292 @@
static int check_for_upwards_depends(mportInstance *, mportPackageMeta *);
-MPORT_PUBLIC_API int mport_delete_primative(mportInstance *mport, mportPackageMeta *pack, int force)
+MPORT_PUBLIC_API int
+mport_delete_primative(mportInstance *mport, mportPackageMeta *pack, int force)
{
- sqlite3_stmt *stmt;
- int ret, current, total;
- mportAssetListEntryType type;
- const char *data, *checksum, *cwd, *service, *rc_script;
- struct stat st;
- char md5[33];
-
- if (force == 0) {
- if (check_for_upwards_depends(mport, pack) != MPORT_OK)
- RETURN_CURRENT_ERROR;
- }
+ sqlite3_stmt *stmt;
+ int ret, current, total;
+ mportAssetListEntryType type;
+ const char *data, *checksum, *cwd, *service, *rc_script;
+ struct stat st;
+ char md5[33];
- mport_call_progress_init_cb(mport, "Deleteing %s-%s", pack->name, pack->version);
+ if (force == 0) {
+ if (check_for_upwards_depends(mport, pack) != MPORT_OK)
+ RETURN_CURRENT_ERROR;
+ }
- /* stop any services that might exist; this replaces @stopdaemon */
- if (mport_db_prepare(mport->db, &stmt, "select * from assets where data like '/usr/local/etc/rc.d/%%' and type=%i and pkg=%Q", ASSET_FILE, pack->name) != MPORT_OK)
- RETURN_CURRENT_ERROR;
+ mport_call_progress_init_cb(mport, "Deleteing %s-%s", pack->name, pack->version);
-while (1) {
- ret = sqlite3_step(stmt);
- if (ret != SQLITE_ROW) {
- break;
+ /* stop any services that might exist; this replaces @stopdaemon */
+ if (mport_db_prepare(mport->db, &stmt,
+ "select * from assets where data like '/usr/local/etc/rc.d/%%' and type=%i and pkg=%Q",
+ ASSET_FILE, pack->name) != MPORT_OK)
+ RETURN_CURRENT_ERROR;
+
+ while (1) {
+ ret = sqlite3_step(stmt);
+ if (ret != SQLITE_ROW) {
+ break;
+ }
+
+ rc_script = sqlite3_column_text(stmt, 0);
+ if (rc_script == NULL)
+ continue;
+ service = basename(rc_script);
+ if (mport_xsystem(mport, "/usr/sbin/service %s onestop",
+ service) != 0) {
+ mport_call_msg_cb(mport, "Unable to stop service %s\n", service);
+ }
}
- rc_script = sqlite3_column_text(stmt, 0);
- if (rc_script == NULL)
- continue;
- service = basename(rc_script);
- if (mport_xsystem(mport, "/usr/sbin/service %s onestop",
- service) != 0) {
- mport_call_msg_cb(mport, "Unable to stop service %s\n", service);
+ /* get the file count for the progress meter */
+ if (mport_db_prepare(mport->db, &stmt,
+ "SELECT COUNT(*) FROM assets WHERE (type=%i or type=%i or type=%i) AND pkg=%Q", ASSET_FILE,
+ ASSET_SAMPLE, ASSET_SHELL, pack->name) != MPORT_OK)
+ RETURN_CURRENT_ERROR;
+
+ switch (sqlite3_step(stmt)) {
+ case SQLITE_ROW:
+
+ total = sqlite3_column_int(stmt, 0) + 1;
+ current = 0;
+ sqlite3_finalize(stmt);
+ break;
+ default:
+ SET_ERROR(MPORT_ERR_FATAL, sqlite3_errmsg(mport->db));
+ sqlite3_finalize(stmt);
+ RETURN_CURRENT_ERROR;
}
- }
- /* get the file count for the progress meter */
- if (mport_db_prepare(mport->db, &stmt, "SELECT COUNT(*) FROM assets WHERE (type=%i or type=%i or type=%i) AND pkg=%Q", ASSET_FILE, ASSET_SAMPLE, ASSET_SHELL, pack->name) != MPORT_OK)
- RETURN_CURRENT_ERROR;
+ if (mport_lock_islocked(pack) == MPORT_LOCKED) {
+ SET_ERROR(MPORT_ERR_FATAL, "Package is locked.");
+ RETURN_CURRENT_ERROR;
+ }
- switch (sqlite3_step(stmt)) {
- case SQLITE_ROW:
-
- total = sqlite3_column_int(stmt, 0) + 1;
- current = 0;
- sqlite3_finalize(stmt);
- break;
- default:
- SET_ERROR(MPORT_ERR_FATAL, sqlite3_errmsg(mport->db));
- sqlite3_finalize(stmt);
- RETURN_CURRENT_ERROR;
- }
+ if (mport_db_do(mport->db, "UPDATE packages SET status='dirty' WHERE pkg=%Q", pack->name) != MPORT_OK)
+ RETURN_CURRENT_ERROR;
- if (mport_lock_islocked(pack) == MPORT_LOCKED) {
- SET_ERROR(MPORT_ERR_FATAL, "Package is locked.");
- RETURN_CURRENT_ERROR;
- }
-
- if (mport_db_do(mport->db, "UPDATE packages SET status='dirty' WHERE pkg=%Q", pack->name) != MPORT_OK)
- RETURN_CURRENT_ERROR;
+ if (run_pkg_deinstall(mport, pack, "DEINSTALL") != MPORT_OK)
+ RETURN_CURRENT_ERROR;
- if (run_pkg_deinstall(mport, pack, "DEINSTALL") != MPORT_OK)
- RETURN_CURRENT_ERROR;
-
- if (mport_db_prepare(mport->db, &stmt, "SELECT type,data,checksum FROM assets WHERE pkg=%Q", pack->name) != MPORT_OK)
- RETURN_CURRENT_ERROR;
-
- cwd = pack->prefix;
+ if (mport_db_prepare(mport->db, &stmt, "SELECT type,data,checksum FROM assets WHERE pkg=%Q", pack->name) !=
+ MPORT_OK)
+ RETURN_CURRENT_ERROR;
- while (1) {
- ret = sqlite3_step(stmt);
-
- if (ret == SQLITE_DONE)
- break;
-
- if (ret != SQLITE_ROW) {
- /* some error occured */
- SET_ERROR(MPORT_ERR_FATAL, sqlite3_errmsg(mport->db));
- sqlite3_finalize(stmt);
- RETURN_CURRENT_ERROR;
- }
-
- type = (mportAssetListEntryType)sqlite3_column_int(stmt, 0);
- data = sqlite3_column_text(stmt, 1);
- checksum = sqlite3_column_text(stmt, 2);
+ cwd = pack->prefix;
- char file[FILENAME_MAX];
- /* XXX TMP */
- if (data == NULL) {
- /* XXX data is null when ASSET_CHMOD (mode) or similar commands are in plist */
- snprintf(file, sizeof(file), "%s", mport->root);
- } else if (*data == '/') {
- snprintf(file, sizeof(file), "%s%s", mport->root, data);
- } else {
- snprintf(file, sizeof(file), "%s%s/%s", mport->root, pack->prefix, data);
- }
+ while (1) {
+ ret = sqlite3_step(stmt);
- switch (type) {
- case ASSET_FILE:
- /* falls through */
- case ASSET_SHELL:
- /* falls through */
- case ASSET_SAMPLE:
- (mport->progress_step_cb)(++current, total, file);
-
- if (lstat(file, &st) != 0) {
- mport_call_msg_cb(mport, "Can't stat %s: %s", file, strerror(errno));
- break; /* next asset */
- }
-
- if (S_ISREG(st.st_mode)) {
- if (MD5File(file, md5) == NULL)
- mport_call_msg_cb(mport, "Can't md5 %s: %s", file, strerror(errno));
-
- if (strcmp(md5, checksum) != 0)
- mport_call_msg_cb(mport, "Checksum mismatch: %s", file);
+ if (ret == SQLITE_DONE)
+ break;
- if (type == ASSET_SAMPLE) {
- char sample_md5[33];
- char nonSample[FILENAME_MAX];
- strlcpy(nonSample, file, FILENAME_MAX);
- char *sptr = strcasestr(nonSample, ".sample");
- if (sptr != NULL) {
- sptr[0] = '\0'; /* hack off .sample */
- if (MD5File(nonSample, sample_md5) == NULL) {
- mport_call_msg_cb(mport, "Could not check file %s, review and remove manually.", nonSample);
- } else if (strcmp(sample_md5, md5) == 0) {
- if (unlink(nonSample) != 0)
- mport_call_msg_cb(mport, "Could not unlink %s: %s", file, strerror(errno));
- } else {
- mport_call_msg_cb(mport, "File does not match sample, remove file %s manually.", nonSample);
- }
- }
- }
+ if (ret != SQLITE_ROW) {
+ /* some error occured */
+ SET_ERROR(MPORT_ERR_FATAL, sqlite3_errmsg(mport->db));
+ sqlite3_finalize(stmt);
+ RETURN_CURRENT_ERROR;
}
-
- if (unlink(file) != 0)
- mport_call_msg_cb(mport, "Could not unlink %s: %s", file, strerror(errno));
- if (type == ASSET_SHELL) {
- if (mport_shell_unregister(file) != MPORT_OK)
- mport_call_msg_cb(mport, "Could not unregister shell: %s", file);
- }
+ type = (mportAssetListEntryType) sqlite3_column_int(stmt, 0);
+ data = sqlite3_column_text(stmt, 1);
+ checksum = sqlite3_column_text(stmt, 2);
- break;
- case ASSET_UNEXEC:
- if (mport_run_asset_exec(mport, data, cwd, file) != MPORT_OK) {
- mport_call_msg_cb(mport, "Could not execute %s: %s", data, mport_err_string());
+ char file[FILENAME_MAX];
+ /* XXX TMP */
+ if (data == NULL) {
+ /* XXX data is null when ASSET_CHMOD (mode) or similar commands are in plist */
+ snprintf(file, sizeof(file), "%s", mport->root);
+ } else if (*data == '/') {
+ snprintf(file, sizeof(file), "%s%s", mport->root, data);
+ } else {
+ snprintf(file, sizeof(file), "%s%s/%s", mport->root, pack->prefix, data);
}
- break;
- case ASSET_DIR:
- case ASSET_DIRRM:
- case ASSET_DIRRMTRY:
- if (mport_rmdir(file, type == ASSET_DIRRMTRY ? 1 : 0) != MPORT_OK) {
- mport_call_msg_cb(mport, "Could not remove directory '%s': %s", file, mport_err_string());
+
+ switch (type) {
+ case ASSET_FILE:
+ /* falls through */
+ case ASSET_SHELL:
+ /* falls through */
+ case ASSET_SAMPLE:
+ (mport->progress_step_cb)(++current, total, file);
+
+ if (lstat(file, &st) != 0) {
+ mport_call_msg_cb(mport, "Can't stat %s: %s", file, strerror(errno));
+ break; /* next asset */
+ }
+
+ if (S_ISREG(st.st_mode)) {
+ if (MD5File(file, md5) == NULL)
+ mport_call_msg_cb(mport, "Can't md5 %s: %s", file, strerror(errno));
+
+ if (strcmp(md5, checksum) != 0)
+ mport_call_msg_cb(mport, "Checksum mismatch: %s", file);
+
+ if (type == ASSET_SAMPLE) {
+ char sample_md5[33];
+ char nonSample[FILENAME_MAX];
+ strlcpy(nonSample, file, FILENAME_MAX);
+ char *sptr = strcasestr(nonSample, ".sample");
+ if (sptr != NULL) {
+ sptr[0] = '\0'; /* hack off .sample */
+ if (MD5File(nonSample, sample_md5) == NULL) {
+ mport_call_msg_cb(mport, "Could not check file %s, review and remove manually.",
+ nonSample);
+ } else if (strcmp(sample_md5, md5) == 0) {
+ if (unlink(nonSample) != 0)
+ mport_call_msg_cb(mport, "Could not unlink %s: %s", file, strerror(errno));
+ } else {
+ mport_call_msg_cb(mport, "File does not match sample, remove file %s manually.",
+ nonSample);
+ }
+ }
+ }
+ }
+
+ if (unlink(file) != 0)
+ mport_call_msg_cb(mport, "Could not unlink %s: %s", file, strerror(errno));
+
+ if (type == ASSET_SHELL) {
+ if (mport_shell_unregister(file) != MPORT_OK)
+ mport_call_msg_cb(mport, "Could not unregister shell: %s", file);
+ }
+
+ break;
+ case ASSET_UNEXEC:
+ if (mport_run_asset_exec(mport, data, cwd, file) != MPORT_OK) {
+ mport_call_msg_cb(mport, "Could not execute %s: %s", data, mport_err_string());
+ }
+ break;
+ case ASSET_DIR:
+ case ASSET_DIRRM:
+ case ASSET_DIRRMTRY:
+ if (mport_rmdir(file, type == ASSET_DIRRMTRY ? 1 : 0) != MPORT_OK) {
+ mport_call_msg_cb(mport, "Could not remove directory '%s': %s", file, mport_err_string());
+ }
+
+ break;
+ default:
+ /* do nothing */
+ break;
}
-
- break;
- default:
- /* do nothing */
- break;
}
- }
- sqlite3_finalize(stmt);
-
- if (run_pkg_deinstall(mport, pack, "POST-DEINSTALL") != MPORT_OK)
- RETURN_CURRENT_ERROR;
-
- if (mport_db_do(mport->db, "BEGIN TRANSACTION") != MPORT_OK)
- RETURN_CURRENT_ERROR;
-
- if (mport_db_do(mport->db, "DELETE FROM assets WHERE pkg=%Q", pack->name) != MPORT_OK)
- RETURN_CURRENT_ERROR;
-
- if (mport_db_do(mport->db, "DELETE FROM depends WHERE pkg=%Q", pack->name) != MPORT_OK)
- RETURN_CURRENT_ERROR;
-
- if (mport_db_do(mport->db, "DELETE FROM packages WHERE pkg=%Q", pack->name) != MPORT_OK)
- RETURN_CURRENT_ERROR;
-
- if (mport_db_do(mport->db, "DELETE FROM categories WHERE pkg=%Q", pack->name) != MPORT_OK)
- RETURN_CURRENT_ERROR;
+ sqlite3_finalize(stmt);
- if (delete_pkg_infra(mport, pack) != MPORT_OK)
- RETURN_CURRENT_ERROR;
+ if (run_pkg_deinstall(mport, pack, "POST-DEINSTALL") != MPORT_OK)
+ RETURN_CURRENT_ERROR;
- if (mport_db_do(mport->db, "COMMIT TRANSACTION") != MPORT_OK)
- RETURN_CURRENT_ERROR;
-
- (mport->progress_step_cb)(++current, total, "DB Updated");
+ if (mport_db_do(mport->db, "BEGIN TRANSACTION") != MPORT_OK)
+ RETURN_CURRENT_ERROR;
-
- (mport->progress_free_cb)();
+ if (mport_db_do(mport->db, "DELETE FROM assets WHERE pkg=%Q", pack->name) != MPORT_OK)
+ RETURN_CURRENT_ERROR;
- mport_pkgmeta_logevent(mport, pack, "Package deleted");
- syslog(LOG_NOTICE, "%s-%s deinstalled", pack->name, pack->version);
-
- return MPORT_OK;
+ if (mport_db_do(mport->db, "DELETE FROM depends WHERE pkg=%Q", pack->name) != MPORT_OK)
+ RETURN_CURRENT_ERROR;
+
+ if (mport_db_do(mport->db, "DELETE FROM packages WHERE pkg=%Q", pack->name) != MPORT_OK)
+ RETURN_CURRENT_ERROR;
+
+ if (mport_db_do(mport->db, "DELETE FROM categories WHERE pkg=%Q", pack->name) != MPORT_OK)
+ RETURN_CURRENT_ERROR;
+
+ if (delete_pkg_infra(mport, pack) != MPORT_OK)
+ RETURN_CURRENT_ERROR;
+
+ if (mport_db_do(mport->db, "COMMIT TRANSACTION") != MPORT_OK)
+ RETURN_CURRENT_ERROR;
+
+ (mport->progress_step_cb)(++current, total, "DB Updated");
+
+
+ (mport->progress_free_cb)();
+
+ mport_pkgmeta_logevent(mport, pack, "Package deleted");
+ syslog(LOG_NOTICE, "%s-%s deinstalled", pack->name, pack->version);
+
+ return MPORT_OK;
}
-static int run_pkg_deinstall(mportInstance *mport, mportPackageMeta *pack, const char *mode)
+static int
+run_pkg_deinstall(mportInstance *mport, mportPackageMeta *pack, const char *mode)
{
- char file[FILENAME_MAX];
- int ret;
-
- (void)snprintf(file, FILENAME_MAX, "%s/%s-%s/%s", MPORT_INST_INFRA_DIR, pack->name, pack->version, MPORT_DEINSTALL_FILE);
+ char file[FILENAME_MAX];
+ int ret;
- if (mport_file_exists(file)) {
- if (chmod(file, 755) != 0)
- RETURN_ERRORX(MPORT_ERR_FATAL, "chmod(%s, 755): %s", file, strerror(errno));
-
- if ((ret = mport_xsystem(mport, "PKG_PREFIX=%s %s %s %s", pack->prefix, file, pack->name, mode)) != 0)
- RETURN_ERRORX(MPORT_ERR_FATAL, "%s %s returned non-zero: %i", MPORT_INSTALL_FILE, mode, ret);
- }
-
- return MPORT_OK;
+ (void) snprintf(file, FILENAME_MAX, "%s/%s-%s/%s", MPORT_INST_INFRA_DIR, pack->name, pack->version,
+ MPORT_DEINSTALL_FILE);
+
+ if (mport_file_exists(file)) {
+ if (chmod(file, 755) != 0)
+ RETURN_ERRORX(MPORT_ERR_FATAL, "chmod(%s, 755): %s", file, strerror(errno));
+
+ if ((ret = mport_xsystem(mport, "PKG_PREFIX=%s %s %s %s", pack->prefix, file, pack->name, mode)) != 0)
+ RETURN_ERRORX(MPORT_ERR_FATAL, "%s %s returned non-zero: %i", MPORT_INSTALL_FILE, mode, ret);
+ }
+
+ return MPORT_OK;
}
/* delete this package's infrastructure dir. */
-static int delete_pkg_infra(mportInstance *mport, mportPackageMeta *pack)
+static int
+delete_pkg_infra(mportInstance *mport, mportPackageMeta *pack)
{
- char dir[FILENAME_MAX];
+ char dir[FILENAME_MAX];
- (void)snprintf(dir, FILENAME_MAX, "%s%s/%s-%s", mport->root, MPORT_INST_INFRA_DIR, pack->name, pack->version);
-
- if (mport_file_exists(dir)) {
- if (mport_rmtree(dir) != MPORT_OK)
- RETURN_ERRORX(MPORT_ERR_FATAL, "mport_rmtree(%s) failed.", dir);
- }
-
- return MPORT_OK;
+ (void) snprintf(dir, FILENAME_MAX, "%s%s/%s-%s", mport->root, MPORT_INST_INFRA_DIR, pack->name, pack->version);
+
+ if (mport_file_exists(dir)) {
+ if (mport_rmtree(dir) != MPORT_OK)
+ RETURN_ERRORX(MPORT_ERR_FATAL, "mport_rmtree(%s) failed.", dir);
+ }
+
+ return MPORT_OK;
}
-static int check_for_upwards_depends(mportInstance *mport, mportPackageMeta *pack)
+static int
+check_for_upwards_depends(mportInstance *mport, mportPackageMeta *pack)
{
- sqlite3_stmt *stmt;
- const char *depends;
- char *msg;
- int count;
-
- if (mport_db_prepare(mport->db, &stmt, "SELECT group_concat(packages.pkg),count(packages.pkg) FROM depends JOIN packages ON depends.pkg=packages.pkg WHERE depend_pkgname=%Q", pack->name) != MPORT_OK)
- RETURN_CURRENT_ERROR;
-
- switch (sqlite3_step(stmt)) {
- case SQLITE_ROW:
- depends = sqlite3_column_text(stmt, 0);
- count = sqlite3_column_int(stmt, 1);
-
- if (count != 0) {
- (void)asprintf(&msg, "%s depend on %s, delete anyway?", depends, pack->name);
- if ((mport->confirm_cb)(msg, "Delete", "Don't delete", 0) != MPORT_OK) {
- sqlite3_finalize(stmt);
- free(msg);
- RETURN_ERRORX(MPORT_ERR_FATAL, "%s depend on %s", depends, pack->name);
- }
- free(msg);
- }
-
- break;
- default:
- SET_ERROR(MPORT_ERR_FATAL, sqlite3_errmsg(mport->db));
- sqlite3_finalize(stmt);
- RETURN_CURRENT_ERROR;
- }
-
- sqlite3_finalize(stmt);
- return MPORT_OK;
+ sqlite3_stmt *stmt;
+ const char *depends;
+ char *msg;
+ int count;
+
+ if (mport_db_prepare(mport->db, &stmt,
+ "SELECT group_concat(packages.pkg),count(packages.pkg) FROM depends JOIN packages ON depends.pkg=packages.pkg WHERE depend_pkgname=%Q",
+ pack->name) != MPORT_OK)
+ RETURN_CURRENT_ERROR;
+
+ switch (sqlite3_step(stmt)) {
+ case SQLITE_ROW:
+ depends = sqlite3_column_text(stmt, 0);
+ count = sqlite3_column_int(stmt, 1);
+
+ if (count != 0) {
+ (void) asprintf(&msg, "%s depend on %s, delete anyway?", depends, pack->name);
+ if ((mport->confirm_cb)(msg, "Delete", "Don't delete", 0) != MPORT_OK) {
+ sqlite3_finalize(stmt);
+ free(msg);
+ RETURN_ERRORX(MPORT_ERR_FATAL, "%s depend on %s", depends, pack->name);
+ }
+ free(msg);
+ }
+
+ break;
+ default:
+ SET_ERROR(MPORT_ERR_FATAL, sqlite3_errmsg(mport->db));
+ sqlite3_finalize(stmt);
+ RETURN_CURRENT_ERROR;
+ }
+
+ sqlite3_finalize(stmt);
+ return MPORT_OK;
}
More information about the Midnightbsd-cvs
mailing list