1
0
mirror of git://git.gnupg.org/gnupg.git synced 2024-05-28 21:50:02 +02:00

tools/gpgtar: Add '--dry-run'.

* tools/gpgtar-extract.c (extract_{regular,directory}): Honor
'--dry-run'.
* tools/gpgtar.c (enum cmd_and_opt_values): New value.
(opts): Add '--dry-run'.
(parse_arguments): Handle '--dry-run'.
* tools/gpgtar.h (opt): Add field 'dry_run'.

Signed-off-by: Justus Winter <justus@g10code.com>
This commit is contained in:
Justus Winter 2015-11-26 17:05:12 +01:00
parent 69a8440f44
commit 676b2d7081
3 changed files with 14 additions and 2 deletions

View File

@ -53,7 +53,10 @@ extract_regular (estream_t stream, const char *dirname,
else else
err = 0; err = 0;
outfp = es_fopen (fname, "wb"); if (opt.dry_run)
outfp = es_fopenmem (0, "wb");
else
outfp = es_fopen (fname, "wb");
if (!outfp) if (!outfp)
{ {
err = gpg_error_from_syserror (); err = gpg_error_from_syserror ();
@ -120,7 +123,7 @@ extract_directory (const char *dirname, tar_header_t hdr)
/* Note that we don't need to care about EEXIST because we always /* Note that we don't need to care about EEXIST because we always
extract into a new hierarchy. */ extract into a new hierarchy. */
if (gnupg_mkdir (fname, "-rwx------")) if (! opt.dry_run && gnupg_mkdir (fname, "-rwx------"))
{ {
err = gpg_error_from_syserror (); err = gpg_error_from_syserror ();
if (gpg_err_code (err) == GPG_ERR_ENOENT) if (gpg_err_code (err) == GPG_ERR_ENOENT)

View File

@ -77,6 +77,9 @@ enum cmd_and_opt_values
/* Compatibility with gpg-zip. */ /* Compatibility with gpg-zip. */
oGpgArgs, oGpgArgs,
oTarArgs, oTarArgs,
/* Debugging. */
oDryRun,
}; };
@ -100,6 +103,7 @@ static ARGPARSE_OPTS opts[] = {
ARGPARSE_s_n (oQuiet, "quiet", N_("be somewhat more quiet")), ARGPARSE_s_n (oQuiet, "quiet", N_("be somewhat more quiet")),
ARGPARSE_s_s (oGpgProgram, "gpg", "@"), ARGPARSE_s_s (oGpgProgram, "gpg", "@"),
ARGPARSE_s_n (oSkipCrypto, "skip-crypto", N_("skip the crypto processing")), ARGPARSE_s_n (oSkipCrypto, "skip-crypto", N_("skip the crypto processing")),
ARGPARSE_s_n (oDryRun, "dry-run", N_("do not make any changes")),
ARGPARSE_s_s (oSetFilename, "set-filename", "@"), ARGPARSE_s_s (oSetFilename, "set-filename", "@"),
ARGPARSE_s_n (oOpenPGP, "openpgp", "@"), ARGPARSE_s_n (oOpenPGP, "openpgp", "@"),
ARGPARSE_s_n (oCMS, "cms", "@"), ARGPARSE_s_n (oCMS, "cms", "@"),
@ -377,6 +381,10 @@ parse_arguments (ARGPARSE_ARGS *pargs, ARGPARSE_OPTS *popts)
} }
break; break;
case oDryRun:
opt.dry_run = 1;
break;
default: pargs->err = 2; break; default: pargs->err = 2; break;
} }
} }

View File

@ -29,6 +29,7 @@ struct
int verbose; int verbose;
unsigned int debug_level; unsigned int debug_level;
int quiet; int quiet;
int dry_run;
const char *gpg_program; const char *gpg_program;
strlist_t gpg_arguments; strlist_t gpg_arguments;
const char *outfile; const char *outfile;