[patch] exclude-from stdin

Dave Dykstra dwd at bell-labs.com
Thu Aug 29 10:49:00 EST 2002


I commited this patch to the rsync CVS (after fixing the rsync.yo to
use em() and bf() and making corresponding changes to rsync.1).

- Dave Dykstra

On Fri, Aug 02, 2002 at 05:53:09PM -0700, jw schultz wrote:
> This patch causes --exclude-from and --include-from to read
> from STDIN when given - for a filename.
> 
> This was formerly incorporated in my --link-dest patch.
> 
> Patch against current cvs.
> 
> 
> -- 
> ________________________________________________________________
> 	J.W. Schultz            Pegasystems Technologies
> 	email address:		jw at pegasys.ws
> 
> 		Remember Cernan and Schmitt

> ? rsync.yo1
> Index: exclude.c
> ===================================================================
> RCS file: /cvsroot/rsync/exclude.c,v
> retrieving revision 1.44
> diff -u -r1.44 exclude.c
> --- exclude.c	11 Apr 2002 02:25:53 -0000	1.44
> +++ exclude.c	3 Aug 2002 00:09:54 -0000
> @@ -220,8 +220,14 @@
>  					  int fatal, int include)
>  {
>  	struct exclude_struct **list=list1;
> -	FILE *f = fopen(fname,"r");
> +	FILE *f;
>  	char line[MAXPATHLEN];
> +
> +	if (strcmp(fname, "-")) {
> +		f = fopen(fname,"r");
> +	} else {
> +		f = fdopen(0, "r");
> +	}
>  	if (!f) {
>  		if (fatal) {
>  			rsyserr(FERROR, errno,
> Index: rsync.yo
> ===================================================================
> RCS file: /cvsroot/rsync/rsync.yo,v
> retrieving revision 1.105
> diff -u -r1.105 rsync.yo
> --- rsync.yo	1 Aug 2002 17:55:40 -0000	1.105
> +++ rsync.yo	3 Aug 2002 00:09:55 -0000
> @@ -617,6 +617,8 @@
>  option, but instead it adds all exclude patterns listed in the file
>  FILE to the exclude list.  Blank lines in FILE and lines starting with
>  ';' or '#' are ignored.
> +If \fIFILE\fP is \fB-\fP the list will be read from standard input.
> +
>  
>  dit(bf(--include=PATTERN)) This option tells rsync to not exclude the
>  specified pattern of filenames. This is useful as it allows you to
> @@ -627,6 +629,8 @@
>  
>  dit(bf(--include-from=FILE)) This specifies a list of include patterns
>  from a file.
> +If \fIFILE\fP is \fB-\fP the list will be read from standard input.
> +
>  
>  dit(bf(-C, --cvs-exclude)) This is a useful shorthand for excluding a
>  broad range of files that you often don't want to transfer between




More information about the rsync mailing list