X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/8d9dc9f99db13d42272b7c150f2e6849331ccdc1..b72f24c7190fde1c15662d52c8d62789bd2086ad:/options.c diff --git a/options.c b/options.c index 11dbcbea..42b8a21c 100644 --- a/options.c +++ b/options.c @@ -55,6 +55,7 @@ int am_sender=0; int recurse = 0; int am_daemon=0; int am_client=0; +int do_stats=0; int block_size=BLOCK_SIZE; @@ -74,12 +75,15 @@ void usage(int F) { rprintf(F,"rsync version %s Copyright Andrew Tridgell and Paul Mackerras\n\n", VERSION); - rprintf(F,"Usage:\t%s [options] src user@host:dest\nOR",RSYNC_NAME); - rprintf(F,"\t%s [options] user@host:src dest\n\n",RSYNC_NAME); - rprintf(F,"Options:\n"); + rprintf(F,"Usage:\t%s [options] src user@host:dest\n",RSYNC_NAME); + rprintf(F,"OR\t%s [options] user@host:src dest\n",RSYNC_NAME); + rprintf(F,"OR\t%s [options] src dest\n",RSYNC_NAME); + rprintf(F,"OR\t%s [options] user@host::src dest\n",RSYNC_NAME); + rprintf(F,"OR\t%s [options] src user@host::dest\n",RSYNC_NAME); + rprintf(F,"\nOptions:\n"); rprintf(F,"-v, --verbose increase verbosity\n"); rprintf(F,"-c, --checksum always checksum\n"); - rprintf(F,"-a, --archive archive mode (same as -rlptDog)\n"); + rprintf(F,"-a, --archive archive mode\n"); rprintf(F,"-r, --recursive recurse into directories\n"); rprintf(F,"-R, --relative use relative path names\n"); rprintf(F,"-b, --backup make backups (default ~ extension)\n"); @@ -109,20 +113,27 @@ void usage(int F) rprintf(F,"-z, --compress compress file data\n"); rprintf(F," --exclude FILE exclude file FILE\n"); rprintf(F," --exclude-from FILE exclude files listed in FILE\n"); + rprintf(F," --include FILE don't exclude file FILE\n"); + rprintf(F," --include-from FILE don't exclude files listed in FILE\n"); rprintf(F," --suffix SUFFIX override backup suffix\n"); rprintf(F," --version print version number\n"); rprintf(F," --daemon run as a rsync daemon\n"); rprintf(F," --config FILE specify alternate rsyncd.conf file\n"); - rprintf(F," --port PORT specify alternate rsyncd port number\n"); + rprintf(F," --port PORT specify alternate rsyncd port number\n"); + rprintf(F," --stats give some file transfer stats\n"); rprintf(F,"\n"); rprintf(F,"the backup suffix defaults to %s\n",BACKUP_SUFFIX); rprintf(F,"the block size defaults to %d\n",BLOCK_SIZE); + + rprintf(F,"\nPlease see the rsync(1) and rsyncd.conf(5) man pages for full documentation\n"); + rprintf(F,"See http://samba.anu.edu.au/rsync/ for updates and bug reports\n"); } enum {OPT_VERSION,OPT_SUFFIX,OPT_SENDER,OPT_SERVER,OPT_EXCLUDE, OPT_EXCLUDE_FROM,OPT_DELETE,OPT_NUMERIC_IDS,OPT_RSYNC_PATH, - OPT_FORCE,OPT_TIMEOUT,OPT_DAEMON,OPT_CONFIG,OPT_PORT}; + OPT_FORCE,OPT_TIMEOUT,OPT_DAEMON,OPT_CONFIG,OPT_PORT, + OPT_INCLUDE, OPT_INCLUDE_FROM, OPT_STATS}; static char *short_options = "oblLWHpguDCtcahvrRIxnSe:B:T:z"; @@ -135,6 +146,8 @@ static struct option long_options[] = { {"numeric-ids", 0, 0, OPT_NUMERIC_IDS}, {"exclude", 1, 0, OPT_EXCLUDE}, {"exclude-from",1, 0, OPT_EXCLUDE_FROM}, + {"include", 1, 0, OPT_INCLUDE}, + {"include-from",1, 0, OPT_INCLUDE_FROM}, {"rsync-path", 1, 0, OPT_RSYNC_PATH}, {"one-file-system",0, 0, 'x'}, {"ignore-times",0, 0, 'I'}, @@ -165,6 +178,7 @@ static struct option long_options[] = { {"temp-dir", 1, 0, 'T'}, {"compress", 0, 0, 'z'}, {"daemon", 0, 0, OPT_DAEMON}, + {"stats", 0, 0, OPT_STATS}, {"config", 1, 0, OPT_CONFIG}, {"port", 1, 0, OPT_PORT}, {0,0,0,0}}; @@ -213,11 +227,19 @@ void parse_arguments(int argc, char *argv[]) break; case OPT_EXCLUDE: - add_exclude(optarg); + add_exclude(optarg, 0); + break; + + case OPT_INCLUDE: + add_exclude(optarg, 1); break; case OPT_EXCLUDE_FROM: - add_exclude_file(optarg,1); + add_exclude_file(optarg,1, 0); + break; + + case OPT_INCLUDE_FROM: + add_exclude_file(optarg,1, 1); break; case 'h': @@ -351,6 +373,10 @@ void parse_arguments(int argc, char *argv[]) am_daemon = 1; break; + case OPT_STATS: + do_stats = 1; + break; + case OPT_CONFIG: config_file = optarg; break;