1
0
mirror of https://github.com/postgrespro/pg_probackup.git synced 2025-02-08 14:28:36 +02:00

Merge "show timeline" and "show" as a single command

It is just troublesome to have to type a subcommands for something that
could be merged into a single table. The output could be made in a
smarter way though...
This commit is contained in:
Michael Paquier 2013-12-13 00:53:27 +09:00
parent ef44c4f347
commit fd8bde8e10
3 changed files with 14 additions and 53 deletions

View File

@ -104,7 +104,6 @@ main(int argc, char *argv[])
const char *cmd = NULL;
const char *range1 = NULL;
const char *range2 = NULL;
bool show_timeline = false;
pgBackupRange range;
int i;
@ -121,9 +120,6 @@ main(int argc, char *argv[])
{
if (cmd == NULL)
cmd = argv[i];
else if (pg_strcasecmp(argv[i], "timeline") == 0 &&
pg_strcasecmp(cmd, "show") == 0)
show_timeline = true;
else if (range1 == NULL)
range1 = argv[i];
else if (range2 == NULL)
@ -207,7 +203,7 @@ main(int argc, char *argv[])
target_inclusive, target_tli, is_hard_copy);
}
else if (pg_strcasecmp(cmd, "show") == 0)
return do_show(&range, show_timeline, show_all);
return do_show(&range, show_all);
else if (pg_strcasecmp(cmd, "validate") == 0)
return do_validate(&range);
else if (pg_strcasecmp(cmd, "delete") == 0)
@ -227,7 +223,6 @@ pgut_help(bool details)
printf(_(" %s OPTION backup\n"), PROGRAM_NAME);
printf(_(" %s OPTION restore\n"), PROGRAM_NAME);
printf(_(" %s OPTION show [DATE]\n"), PROGRAM_NAME);
printf(_(" %s OPTION show timeline [DATE]\n"), PROGRAM_NAME);
printf(_(" %s OPTION validate [DATE]\n"), PROGRAM_NAME);
printf(_(" %s OPTION delete DATE\n"), PROGRAM_NAME);

View File

@ -247,7 +247,7 @@ extern int do_restore(const char *target_time,
extern int do_init(void);
/* in show.c */
extern int do_show(pgBackupRange *range, bool show_timeline, bool show_all);
extern int do_show(pgBackupRange *range, bool show_all);
/* in delete.c */
extern int do_delete(pgBackupRange *range, bool force);

58
show.c
View File

@ -10,7 +10,6 @@
#include "pg_rman.h"
static void show_backup_list(FILE *out, parray *backup_list, bool show_all);
static void show_timeline_backup_list(FILE *out, parray *backup_list, bool show_all);
static void show_backup_detail(FILE *out, pgBackup *backup);
/*
@ -19,7 +18,7 @@ static void show_backup_detail(FILE *out, pgBackup *backup);
* backup indicated by id.
*/
int
do_show(pgBackupRange *range, bool show_timeline, bool show_all)
do_show(pgBackupRange *range, bool show_all)
{
if (pgBackupRangeIsSingle(range))
{
@ -49,10 +48,7 @@ do_show(pgBackupRange *range, bool show_timeline, bool show_all)
elog(ERROR_SYSTEM, _("can't process any more."));
}
if (!show_timeline)
show_backup_list(stdout, backup_list, show_all);
else
show_timeline_backup_list(stdout, backup_list, show_all);
show_backup_list(stdout, backup_list, show_all);
/* cleanup */
parray_walk(backup_list, pgBackupFree);
@ -165,13 +161,15 @@ show_backup_list(FILE *out, parray *backup_list, bool show_all)
int i;
/* show header */
fputs("============================================================================\n", out);
fputs("Start Time Total Data WAL Log Backup Status \n", out);
fputs("============================================================================\n", out);
fputs("===========================================================================================================\n", out);
fputs("Start Mode Current TLI Parent TLI Time Total Data WAL Log Backup Status \n", out);
fputs("===========================================================================================================\n", out);
for (i = 0; i < parray_num(backup_list); i++)
{
pgBackup *backup;
const char *modes[] = { "", "ARCH", "INCR", "FULL"};
TimeLineID parent_tli;
char timestamp[20];
char duration[20] = "----";
char total_data_bytes_str[10] = "----";
@ -206,45 +204,13 @@ show_backup_list(FILE *out, parray *backup_list, bool show_all)
pretty_size(backup->write_bytes, write_bytes_str,
lengthof(write_bytes_str));
fprintf(out, "%-19s %5s %6s %6s %6s %6s %6s %s\n",
timestamp, duration,
total_data_bytes_str, read_data_bytes_str, read_arclog_bytes_str,
read_srvlog_bytes_str, write_bytes_str, status2str(backup->status));
}
}
static void
show_timeline_backup_list(FILE *out, parray *backup_list, bool show_all)
{
int i;
/* show header */
fputs("============================================================\n", out);
fputs("Start Mode Current TLI Parent TLI Status \n", out);
fputs("============================================================\n", out);
for (i = 0; i < parray_num(backup_list); i++)
{
static const char *modes[] = { "", "ARCH", "INCR", "FULL"};
pgBackup *backup;
char timestamp[20];
TimeLineID parent_tli;
backup = parray_get(backup_list, i);
/* skip deleted backup and serverlog backup */
if ((backup->status == BACKUP_STATUS_DELETED || !HAVE_ARCLOG(backup)) &&
!show_all)
continue;
time2iso(timestamp, lengthof(timestamp), backup->start_time);
/* Get parent timeline before printing */
parent_tli = get_parent_tli(backup->tli);
fprintf(out, "%-19s %-4s %10d %10d %s\n",
timestamp, modes[backup->backup_mode], backup->tli, parent_tli,
status2str(backup->status));
fprintf(out, "%-19s %-4s %10d %10d %5s %6s %6s %6s %6s %6s %s\n",
timestamp, modes[backup->backup_mode], backup->tli, parent_tli, duration,
total_data_bytes_str, read_data_bytes_str, read_arclog_bytes_str,
read_srvlog_bytes_str, write_bytes_str, status2str(backup->status));
}
}