Radish alpha
H
rad:z3QDZAW2FAfuLvihrhiyDC9fAD8G9
HardenedBSD Package Manager
Radicle
Git
Fix pkg backup -r messages
Baptiste Daroussin committed 11 years ago
commit e57c0d4a05b2d47450e0813198609b81ccef654c
parent 4f56f4b
6 files changed +39 -5
modified libpkg/backup.c
@@ -91,7 +91,7 @@ copy_database(sqlite3 *src, sqlite3 *dst, const char *name)
	done = total = 0;
	start = time(NULL);

-
	pkg_emit_progress_start("Backing up");
+
	pkg_emit_progress_start(NULL);
	do {
		ret = sqlite3_backup_step(b, NPAGES);

@@ -157,6 +157,7 @@ pkgdb_dump(struct pkgdb *db, const char *dest)
		return (EPKG_FATAL);
	}

+
	pkg_emit_backup();
	ret = copy_database(db->sqlite, backup, dest);

	sqlite3_close(backup);
@@ -183,6 +184,7 @@ pkgdb_load(struct pkgdb *db, const char *src)
		return (EPKG_FATAL);
	}

+
	pkg_emit_restore();
	ret = copy_database(restore, db->sqlite, src);

	sqlite3_close(restore);
modified libpkg/pkg.h.in
@@ -1384,6 +1384,8 @@ typedef enum {
	PKG_EVENT_SANDBOX_GET_STRING,
	PKG_EVENT_PROGRESS_START,
	PKG_EVENT_PROGRESS_TICK,
+
	PKG_EVENT_BACKUP,
+
	PKG_EVENT_RESTORE,
	/* errors */
	PKG_EVENT_ERROR,
	PKG_EVENT_ERRNO,
modified libpkg/pkg_event.c
@@ -371,6 +371,9 @@ pipeevent(struct pkg_event *ev)
		sbuf_printf(msg, "{ \"text\": \"%s\" } ] }}",
			ev->e_query_select.items[i]);
		break;
+
	case PKG_EVENT_BACKUP:
+
	case PKG_EVENT_RESTORE:
+
		break;
	default:
		break;
	}
@@ -891,6 +894,26 @@ pkg_debug(int level, const char *fmt, ...)
}

void
+
pkg_emit_backup(void)
+
{
+
	struct pkg_event ev;
+

+
	ev.type = PKG_EVENT_BACKUP;
+

+
	pkg_emit_event(&ev);
+
}
+

+
void
+
pkg_emit_restore(void)
+
{
+
	struct pkg_event ev;
+

+
	ev.type = PKG_EVENT_RESTORE;
+

+
	pkg_emit_event(&ev);
+
}
+

+
void
pkg_emit_progress_start(const char *fmt, ...)
{
	struct pkg_event ev;
modified libpkg/private/event.h
@@ -57,6 +57,8 @@ void pkg_emit_newpkgversion(void);
void pkg_emit_developer_mode(const char *fmt, ...);
void pkg_emit_package_not_found(const char *);
void pkg_emit_incremental_update(int updated, int removed, int added, int processed);
+
void pkg_emit_backup(void);
+
void pkg_emit_restore(void);
void pkg_debug(int level, const char *fmt, ...);
int pkg_emit_sandbox_call(pkg_sandbox_cb call, int fd, void *ud);
int pkg_emit_sandbox_get_string(pkg_sandbox_cb call, void *ud, char **str, int64_t *len);
modified src/backup.c
@@ -91,11 +91,9 @@ exec_backup(int argc, char **argv)

	if (restore) {
		if (!quiet)
-
			printf("Restoring database...\n");
+
			printf("Restoring database:\n");
		if (pkgdb_load(db, backup_file) == EPKG_FATAL)
			return (EX_IOERR);
-
		if (!quiet)
-
			printf("done\n");
	}

	pkgdb_close(db);
modified src/event.c
@@ -772,7 +772,14 @@ event_callback(void *data, struct pkg_event *ev)
	case PKG_EVENT_PROGRESS_TICK:
		if (!quiet && isatty(STDOUT_FILENO))
			draw_progressbar(ev->e_progress_tick.current, ev->e_progress_tick.total);
-

+
		break;
+
	case PKG_EVENT_BACKUP:
+
		sbuf_cat(msg_buf, "Backing up");
+
		sbuf_finish(msg_buf);
+
		break;
+
	case PKG_EVENT_RESTORE:
+
		sbuf_cat(msg_buf, "Restoring");
+
		sbuf_finish(msg_buf);
		break;
	default:
		break;