Supply more information to the --to-command script.

* src/system.c (stat_to_env): Pass information about the current
volume in variables TAR_ARCHIVE, TAR_VOLUME, TAR_BLOCKING_FACTOR,
TAR_FORMAT.
* doc/tar.texi: Document new environment variables.
* NEWS: Likewise.
* configure.ac: Version number 1.22.91.
This commit is contained in:
Sergey Poznyakoff
2010-02-25 10:34:29 +02:00
parent b7899bb121
commit 762be4f2bd
4 changed files with 44 additions and 4 deletions

15
NEWS
View File

@@ -1,8 +1,8 @@
GNU tar NEWS - User visible changes. 2010-01-26
GNU tar NEWS - User visible changes. 2010-02-25
Please send GNU tar bug reports to <bug-tar@gnu.org>
version 1.22.90 (Git)
version 1.22.91 (Git)
* Record size autodetection
@@ -86,6 +86,17 @@ chapter 7, "Date input formats", of the Tar manual, or as a name of
an existing file, starting with `/' or `.'. In the latter
case, the value is replaced with the modification time of that file.
* Environment of --to-command script.
The environment passed to the --to-command script is extended with
the following variables:
TAR_VERSION GNU tar version number
TAR_ARCHIVE The name of the archive
TAR_VOLUME Ordinal number of the volume
TAR_FORMAT Format of the archive
TAR_BLOCKING_FACTOR Current blocking factor
* Bugfixes
** Fix handling of hard link targets by -c --transform.
** Fix hard links recognition with -c --remove-files.

View File

@@ -19,7 +19,7 @@
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
# 02110-1301, USA.
AC_INIT([GNU tar], [1.22.90], [bug-tar@gnu.org])
AC_INIT([GNU tar], [1.22.91], [bug-tar@gnu.org])
AC_CONFIG_SRCDIR([src/tar.c])
AC_CONFIG_AUX_DIR([build-aux])
AC_CONFIG_HEADERS([config.h])

View File

@@ -5430,9 +5430,32 @@ UID of the file owner.
GID of the file owner.
@end table
In addition to these variables, @env{TAR_VERSION} contains the
Additionally, the following variables contain information about
tar mode and the archive being processed:
@table @env
@vrindex TAR_VERSION, to-command environment
@item TAR_VERSION
@GNUTAR{} version number.
@vrindex TAR_ARCHIVE, to-command environment
@item TAR_ARCHIVE
The name of the archive @command{tar} is processing.
@vrindex TAR_BLOCKING_FACTOR, to-command environment
@item TAR_BLOCKING_FACTOR
Current blocking factor (@pxref{Blocking}.
@vrindex TAR_VOLUME, to-command environment
@item TAR_VOLUME
Ordinal number of the volume @command{tar} is processing.
@vrindex TAR_FORMAT, to-command environment
@item TAR_FORMAT
Format of the archive being processed. @xref{Formats}, for a complete
list of archive format names.
@end table
If @var{command} exits with a non-0 status, @command{tar} will print
an error message similar to the following:

View File

@@ -629,6 +629,12 @@ static void
stat_to_env (char *name, char type, struct tar_stat_info *st)
{
str_to_env ("TAR_VERSION", PACKAGE_VERSION);
str_to_env ("TAR_ARCHIVE", *archive_name_cursor);
dec_to_env ("TAR_VOLUME", archive_name_cursor - archive_name_array + 1);
dec_to_env ("TAR_BLOCKING_FACTOR", blocking_factor);
str_to_env ("TAR_FORMAT",
archive_format_string (current_format == DEFAULT_FORMAT ?
archive_format : current_format));
chr_to_env ("TAR_FILETYPE", type);
oct_to_env ("TAR_MODE", st->stat.st_mode);
str_to_env ("TAR_FILENAME", name);