mirror of
git://git.gnupg.org/gnupg.git
synced 2025-05-19 09:02:22 +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:
parent
69a8440f44
commit
676b2d7081
@ -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)
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user