Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit135f86e

Browse files
committed
implement help for probackup commands
1 parenta6be0c3 commit135f86e

File tree

6 files changed

+263
-127
lines changed

6 files changed

+263
-127
lines changed

‎Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ OBJS = backup.o \
66
delete.o\
77
dir.o\
88
fetch.o\
9+
help.o\
910
init.o\
1011
parray.o\
1112
pg_probackup.o\

‎help.c

Lines changed: 238 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,238 @@
1+
/*-------------------------------------------------------------------------
2+
*
3+
* help.c
4+
*
5+
* Portions Copyright (c) 2017-2017, Postgres Professional
6+
*
7+
*-------------------------------------------------------------------------
8+
*/
9+
#include"pg_probackup.h"
10+
11+
staticvoidhelp_init(void);
12+
staticvoidhelp_backup(void);
13+
staticvoidhelp_restore(void);
14+
staticvoidhelp_validate(void);
15+
staticvoidhelp_show(void);
16+
staticvoidhelp_delete(void);
17+
staticvoidhelp_set_config(void);
18+
staticvoidhelp_show_config(void);
19+
20+
void
21+
help_command(char*command)
22+
{
23+
if (strcmp(command,"init")==0)
24+
help_init();
25+
elseif (strcmp(command,"backup")==0)
26+
help_backup();
27+
elseif (strcmp(command,"restore")==0)
28+
help_restore();
29+
elseif (strcmp(command,"validate")==0)
30+
help_validate();
31+
elseif (strcmp(command,"show")==0)
32+
help_show();
33+
elseif (strcmp(command,"delete")==0)
34+
help_delete();
35+
elseif (strcmp(command,"set-config")==0)
36+
help_set_config();
37+
elseif (strcmp(command,"show-config")==0)
38+
help_show_config();
39+
elseif (strcmp(command,"--help")==0
40+
||strcmp(command,"help")==0
41+
||strcmp(command,"-?")==0
42+
||strcmp(command,"--version")==0
43+
||strcmp(command,"version")==0
44+
||strcmp(command,"-V")==0)
45+
printf(_("No help page for \"%s\" command. Try pg_probackup help\n"),command);
46+
else
47+
printf(_("Unknown command. Try pg_probackup help\n"));
48+
exit(0);
49+
}
50+
51+
void
52+
help_pg_probackup(void)
53+
{
54+
printf(_("\n%s - utility to manage backup/recovery of PostgreSQL database.\n\n"),PROGRAM_NAME);
55+
56+
printf(_(" %s help [COMMAND]\n"),PROGRAM_NAME);
57+
58+
printf(_("\n %s version\n"),PROGRAM_NAME);
59+
60+
printf(_("\n %s init -B backup-path -D pgdata-dir\n"),PROGRAM_NAME);
61+
62+
printf(_("\n %s set-config -B backup-dir\n"),PROGRAM_NAME);
63+
printf(_(" [-d dbname] [-h host] [-p port] [-U username]\n"));
64+
printf(_(" [--retention-redundancy=retention-redundancy]]\n"));
65+
printf(_(" [--retention-window=retention-window]\n"));
66+
67+
printf(_("\n %s show-config -B backup-dir\n"),PROGRAM_NAME);
68+
69+
printf(_("\n %s backup -B backup-path -b backup-mode\n"),PROGRAM_NAME);
70+
printf(_(" [-D pgdata-dir] [-C] [--stream [-S slot-name]] [--backup-pg-log]\n"));
71+
printf(_(" [-j num-threads] [--archive-timeout=archive-timeout]\n"));
72+
printf(_(" [--progress] [-q] [-v] [--delete-expired]\n"));
73+
printf(_(" [-d dbname] [-h host] [-p port] [-U username]\n"));
74+
75+
printf(_("\n %s restore -B backup-dir\n"),PROGRAM_NAME);
76+
printf(_(" [-D pgdata-dir] [-i backup-id] [--progress] [-q] [-v]\n"));
77+
printf(_(" [--time=time|--xid=xid [--inclusive=boolean]]\n"));
78+
printf(_(" [--timeline=timeline] [-T OLDDIR=NEWDIR]\n"));
79+
80+
printf(_("\n %s validate -B backup-dir\n"),PROGRAM_NAME);
81+
printf(_(" [-D pgdata-dir] [-i backup-id] [--progress] [-q] [-v]\n"));
82+
printf(_(" [--time=time|--xid=xid [--inclusive=boolean]]\n"));
83+
printf(_(" [--timeline=timeline]\n"));
84+
85+
printf(_("\n %s show -B backup-dir\n"),PROGRAM_NAME);
86+
printf(_(" [-i backup-id]\n"));
87+
88+
printf(_("\n %s delete -B backup-dir\n"),PROGRAM_NAME);
89+
printf(_(" [--wal] [-i backup-id | --expired]\n"));
90+
91+
if ((PROGRAM_URL||PROGRAM_EMAIL))
92+
{
93+
printf("\n");
94+
if (PROGRAM_URL)
95+
printf("Read the website for details. <%s>\n",PROGRAM_URL);
96+
if (PROGRAM_EMAIL)
97+
printf("Report bugs to <%s>.\n",PROGRAM_EMAIL);
98+
}
99+
exit(0);
100+
}
101+
102+
staticvoid
103+
help_init(void)
104+
{
105+
printf(_("%s init -B backup-path -D pgdata-dir\n\n"),PROGRAM_NAME);
106+
printf(_(" -B, --backup-path=backup-path location of the backup storage area\n"));
107+
printf(_(" -D, --pgdata=pgdata-dir location of the database storage area\n"));
108+
}
109+
110+
staticvoid
111+
help_backup(void)
112+
{
113+
printf(_("%s backup -B backup-path -b backup-mode\n"),PROGRAM_NAME);
114+
printf(_(" [-D pgdata-dir] [-C] [--stream [-S slot-name]] [--backup-pg-log]\n"));
115+
printf(_(" [-j num-threads] [--archive-timeout=archive-timeout]\n"));
116+
printf(_(" [--progress] [-q] [-v] [--delete-expired]\n"));
117+
printf(_(" [-d dbname] [-h host] [-p port] [-U username]\n\n"));
118+
119+
printf(_(" -B, --backup-path=backup-path location of the backup storage area\n"));
120+
printf(_(" -b, --backup-mode=backup-mode backup mode=FULL|PAGE|PTRACK\n"));
121+
printf(_(" -D, --pgdata=pgdata-dir location of the database storage area\n"));
122+
printf(_(" -C, --smooth-checkpoint do smooth checkpoint before backup\n"));
123+
printf(_(" --stream stream the transaction log and include it in the backup\n"));
124+
printf(_(" --archive-timeout wait timeout for WAL segment archiving\n"));
125+
printf(_(" -S, --slot=SLOTNAME replication slot to use\n"));
126+
printf(_(" --backup-pg-log backup of pg_log directory\n"));
127+
printf(_(" -j, --threads=NUM number of parallel threads\n"));
128+
printf(_(" --progress show progress\n"));
129+
printf(_(" -q, --quiet don't write any messages\n"));
130+
printf(_(" -v, --verbose verbose mode\n"));
131+
printf(_(" --delete-expired delete backups expired according to current\n"));
132+
printf(_(" retention policy after successful backup completion\n"));
133+
134+
printf(_("\n Connection options:\n"));
135+
printf(_(" -d, --dbname=DBNAME database to connect\n"));
136+
printf(_(" -h, --host=HOSTNAME database server host or socket directory\n"));
137+
printf(_(" -p, --port=PORT database server port\n"));
138+
printf(_(" -U, --username=USERNAME user name to connect as\n"));
139+
}
140+
141+
staticvoid
142+
help_restore(void)
143+
{
144+
printf(_("%s restore -B backup-dir\n"),PROGRAM_NAME);
145+
printf(_(" [-D pgdata-dir] [-i backup-id] [--progress] [-q] [-v]\n"));
146+
printf(_(" [--time=time|--xid=xid [--inclusive=boolean]]\n"));
147+
printf(_(" [--timeline=timeline] [-T OLDDIR=NEWDIR]\n\n"));
148+
149+
printf(_(" -B, --backup-path=backup-path location of the backup storage area\n"));
150+
printf(_(" -D, --pgdata=pgdata-dir location of the database storage area\n"));
151+
printf(_(" -i, --backup-id=backup-id backup to restore\n"));
152+
153+
printf(_(" --progress show progress\n"));
154+
printf(_(" -q, --quiet don't write any messages\n"));
155+
printf(_(" -v, --verbose verbose mode\n"));
156+
printf(_(" --time=time time stamp up to which recovery will proceed\n"));
157+
printf(_(" --xid=xid transaction ID up to which recovery will proceed\n"));
158+
printf(_(" --inclusive=boolean whether we stop just after the recovery target\n"));
159+
printf(_(" --timeline=timeline recovering into a particular timeline\n"));
160+
printf(_(" -T, --tablespace-mapping=OLDDIR=NEWDIR\n"));
161+
printf(_(" relocate the tablespace from directory OLDDIR to NEWDIR\n"));
162+
}
163+
164+
staticvoid
165+
help_validate(void)
166+
{
167+
printf(_("%s validate -B backup-dir\n"),PROGRAM_NAME);
168+
printf(_(" [-D pgdata-dir] [-i backup-id] [--progress] [-q] [-v]\n"));
169+
printf(_(" [--time=time|--xid=xid [--inclusive=boolean]]\n"));
170+
printf(_(" [--timeline=timeline]\n\n"));
171+
172+
printf(_(" -B, --backup-path=backup-path location of the backup storage area\n"));
173+
printf(_(" -D, --pgdata=pgdata-dir location of the database storage area\n"));
174+
printf(_(" -i, --backup-id=backup-id backup to validate\n"));
175+
176+
printf(_(" --progress show progress\n"));
177+
printf(_(" -q, --quiet don't write any messages\n"));
178+
printf(_(" -v, --verbose verbose mode\n"));
179+
printf(_(" --time=time time stamp up to which recovery will proceed\n"));
180+
printf(_(" --xid=xid transaction ID up to which recovery will proceed\n"));
181+
printf(_(" --inclusive=boolean whether we stop just after the recovery target\n"));
182+
printf(_(" --timeline=timeline recovering into a particular timeline\n"));
183+
}
184+
185+
staticvoid
186+
help_show(void)
187+
{
188+
printf(_("%s show -B backup-dir\n"),PROGRAM_NAME);
189+
printf(_(" [-i backup-id]\n\n"));
190+
191+
printf(_(" -B, --backup-path=backup-path location of the backup storage area\n"));
192+
printf(_(" -i, --backup-id=backup-id show info about specific backups\n"));
193+
}
194+
195+
staticvoid
196+
help_delete(void)
197+
{
198+
printf(_("%s delete -B backup-dir\n"),PROGRAM_NAME);
199+
printf(_(" [--wal] [-i backup-id | --expired]\n\n"));
200+
201+
printf(_(" -B, --backup-path=backup-path location of the backup storage area\n"));
202+
printf(_(" --wal remove unnecessary wal files\n"));
203+
printf(_(" -i, --backup-id=backup-id backup to delete\n"));
204+
printf(_(" --expired delete backups expired according to current\n"));
205+
printf(_(" retention policy\n"));
206+
}
207+
208+
staticvoid
209+
help_set_config(void)
210+
{
211+
printf(_("%s set-config -B backup-dir\n"),PROGRAM_NAME);
212+
printf(_(" [-d dbname] [-h host] [-p port] [-U username]\n"));
213+
printf(_(" [--retention-redundancy=retention-redundancy]]\n"));
214+
printf(_(" [--retention-window=retention-window]\n\n"));
215+
216+
printf(_(" -B, --backup-path=backup-path location of the backup storage area\n"));
217+
218+
printf(_("\n Connection options:\n"));
219+
printf(_(" -d, --dbname=DBNAME database to connect\n"));
220+
printf(_(" -h, --host=HOSTNAME database server host or socket directory\n"));
221+
printf(_(" -p, --port=PORT database server port\n"));
222+
printf(_(" -U, --username=USERNAME user name to connect as\n"));
223+
224+
printf(_("\n Retention options:\n"));
225+
printf(_(" --retention-redundancy=retention-redundancy\n"));
226+
printf(_(" number of full backups to keep\n"));
227+
printf(_(" --retention-window=retention-window\n"));
228+
printf(_(" number of days of recoverability\n"));
229+
230+
}
231+
232+
staticvoid
233+
help_show_config(void)
234+
{
235+
printf(_("%s show-config -B backup-dir\n\n"),PROGRAM_NAME);
236+
237+
printf(_(" -B, --backup-path=backup-path location of the backup storage area\n"));
238+
}

‎pg_probackup.c

Lines changed: 20 additions & 91 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@ char arclog_path[MAXPGPATH];
2929
pgBackupcurrent;
3030
ProbackupSubcmdbackup_subcmd;
3131

32+
boolhelp= false;
33+
3234
char*backup_id_string_param=NULL;
3335
boolbackup_logs= false;
3436

@@ -59,6 +61,7 @@ static void opt_backup_mode(pgut_option *opt, const char *arg);
5961
staticpgut_optionoptions[]=
6062
{
6163
/* directory options */
64+
{'b',1,"help",&help,SOURCE_CMDLINE },
6265
{'s','D',"pgdata",&pgdata,SOURCE_CMDLINE },
6366
{'s','B',"backup-path",&backup_path,SOURCE_CMDLINE },
6467
/* common options */
@@ -141,23 +144,35 @@ main(int argc, char *argv[])
141144
||strcmp(argv[1],"help")==0
142145
||strcmp(argv[1],"-?")==0)
143146
{
144-
help(true);
145-
exit(0);
147+
if (argc>2)
148+
help_command(argv[2]);
149+
else
150+
help_pg_probackup();
146151
}
147152
elseif (strcmp(argv[1],"--version")==0
148153
||strcmp(argv[1],"version")==0
149154
||strcmp(argv[1],"-V")==0)
150155
{
151-
fprintf(stderr,"%s %s\n",PROGRAM_NAME,PROGRAM_VERSION);
152-
exit(0);
156+
if (argc==2)
157+
{
158+
fprintf(stderr,"%s %s\n",PROGRAM_NAME,PROGRAM_VERSION);
159+
exit(0);
160+
}
161+
elseif (strcmp(argv[2],"--help")==0)
162+
help_command(argv[1]);
163+
else
164+
elog(ERROR,"Invalid arguments for \"%s\" subcommand",argv[1]);
153165
}
154166
else
155-
elog(ERROR,"Invalid subcommand");
167+
elog(ERROR,"Unknown subcommand");
156168
}
157169

158170
/* Parse command line arguments */
159171
pgut_getopt(argc,argv,options);
160172

173+
if (help)
174+
help_command(argv[2]);
175+
161176
if (backup_path==NULL)
162177
{
163178
/* Try to read BACKUP_PATH from environment variable */
@@ -263,92 +278,6 @@ main(int argc, char *argv[])
263278
return0;
264279
}
265280

266-
/* TODO Update help in accordance with new options */
267-
void
268-
pgut_help(booldetails)
269-
{
270-
printf(_("\n%s - utility to manage backup/recovery of PostgreSQL database.\n\n"),PROGRAM_NAME);
271-
272-
printf(_(" %s help\n"),PROGRAM_NAME);
273-
274-
printf(_("\n %s version\n"),PROGRAM_NAME);
275-
276-
printf(_("\n %s init -B backup-path -D pgdata-dir\n"),PROGRAM_NAME);
277-
278-
printf(_("\n %s set-config -B backup-dir\n"),PROGRAM_NAME);
279-
printf(_(" [-d dbname] [-h host] [-p port] [-U username]\n"));
280-
printf(_(" [--retention-redundancy=retention-redundancy]]\n"));
281-
printf(_(" [--retention-window=retention-window]\n"));
282-
283-
printf(_("\n %s show-config -B backup-dir\n"),PROGRAM_NAME);
284-
285-
printf(_("\n %s backup -B backup-path -b backup-mode\n"),PROGRAM_NAME);
286-
printf(_(" [-D pgdata-dir] [-C] [--stream [-S slot-name]] [--backup-pg-log]\n"));
287-
printf(_(" [-j num-threads] [--archive-timeout=archive-timeout]\n"));
288-
printf(_(" [--progress] [-q] [-v] [--delete-expired]\n"));
289-
printf(_(" [-d dbname] [-h host] [-p port] [-U username]\n"));
290-
291-
printf(_("\n %s restore -B backup-dir\n"),PROGRAM_NAME);
292-
printf(_(" [-D pgdata-dir] [-i backup-id]\n"));
293-
printf(_(" [--time=time|--xid=xid [--inclusive=boolean]]\n"));
294-
printf(_(" [--timeline=timeline] [-T OLDDIR=NEWDIR]\n"));
295-
296-
printf(_("\n %s validate -B backup-dir\n"),PROGRAM_NAME);
297-
printf(_(" [-D pgdata-dir] [-i backup-id]\n"));
298-
printf(_(" [--time=time|--xid=xid [--inclusive=boolean]]\n"));
299-
printf(_(" [--timeline=timeline] [-T OLDDIR=NEWDIR]\n"));
300-
301-
printf(_("\n %s show -B backup-dir\n"),PROGRAM_NAME);
302-
printf(_(" [-i backup-id]\n"));
303-
304-
printf(_("\n %s delete -B backup-dir\n"),PROGRAM_NAME);
305-
printf(_(" [--wal] [-i backup-id | --expired] [--force]\n"));
306-
307-
308-
// printf(_(" -B, --backup-path=backup-path location of the backup storage area\n"));
309-
// printf(_(" -D, --pgdata=pgdata-dir location of the database storage area\n"));
310-
// printf(_(" -b, --backup-mode=backup-mode backup mode=FULL|PAGE|PTRACK\n"));
311-
// printf(" Connection options:\n");
312-
// printf(" -d, --dbname=DBNAME database to connect\n");
313-
// printf(" -h, --host=HOSTNAME database server host or socket directory\n");
314-
// printf(" -p, --port=PORT database server port\n");
315-
// printf(" -U, --username=USERNAME user name to connect as\n");
316-
// printf(" -w, --no-password never prompt for password\n");
317-
// printf(" -W, --password force password prompt\n");
318-
// printf(" Retention options:\n");
319-
// printf(_(" --retention-redundancy=n-full-backups specifies how many full backups purge command should keep\n"));
320-
// printf(_(" --retention-window=n-days specifies the number of days of recoverability\n"));
321-
//
322-
//
323-
// printf(_("\nOptional p:\n"));
324-
// printf(_(" -B, --backup-path=PATH location of the backup storage area\n"));
325-
// printf(_(" -D, --pgdata=PATH location of the database storage area\n"));
326-
// /*printf(_(" -c, --check show what would have been done\n"));*/
327-
// printf(_("\nBackup options:\n"));
328-
// printf(_(" -b, --backup-mode=MODE backup mode (full, page, ptrack)\n"));
329-
// printf(_(" -C, --smooth-checkpoint do smooth checkpoint before backup\n"));
330-
// printf(_(" --stream stream the transaction log and include it in the backup\n"));
331-
// printf(_(" --archive-timeout wait timeout for WAL segment archiving\n"));
332-
// printf(_(" -S, --slot=SLOTNAME replication slot to use\n"));
333-
// printf(_(" --backup-pg-log backup of pg_log directory\n"));
334-
// printf(_(" -j, --threads=NUM number of parallel threads\n"));
335-
// printf(_(" --progress show progress\n"));
336-
// printf(_("\nRestore options:\n"));
337-
// printf(_(" --time time stamp up to which recovery will proceed\n"));
338-
// printf(_(" --xid transaction ID up to which recovery will proceed\n"));
339-
// printf(_(" --inclusive whether we stop just after the recovery target\n"));
340-
// printf(_(" --timeline recovering into a particular timeline\n"));
341-
// printf(_(" -T, --tablespace-mapping=OLDDIR=NEWDIR\n"));
342-
// printf(_(" relocate the tablespace in directory OLDDIR to NEWDIR\n"));
343-
// printf(_(" -j, --threads=NUM number of parallel threads\n"));
344-
// printf(_(" --progress show progress\n"));
345-
// printf(_("\nDelete options:\n"));
346-
// printf(_(" --wal remove unnecessary wal files\n"));
347-
// printf(_("\nRetention options:\n"));
348-
// printf(_(" --redundancy specifies how many full backups purge command should keep\n"));
349-
// printf(_(" --window specifies the number of days of recoverability\n"));
350-
}
351-
352281
staticvoid
353282
opt_backup_mode(pgut_option*opt,constchar*arg)
354283
{

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp