From 2e75dcc80d6dd2ad8858d6c343d25e6a8c5e4812 Mon Sep 17 00:00:00 2001 From: Bernhard Reutner-Fischer Date: Thu, 5 Apr 2007 10:31:47 +0000 Subject: [PATCH] - add -s|--spider which only checks if the file exists but does not download it's content. Closes #1291 --- include/usage.h | 7 ++++--- networking/wget.c | 25 ++++++++++++++++--------- 2 files changed, 20 insertions(+), 12 deletions(-) diff --git a/include/usage.h b/include/usage.h index 1889010..f4edf05 100644 --- a/include/usage.h +++ b/include/usage.h @@ -3056,7 +3056,7 @@ USE_FEATURE_RUN_PARTS_FANCY("\n -l Prints names of all matching files even when " %i File System ID in hex\n" \ " %l Maximum length of filenames\n" \ " %n File name\n" \ - " %s Block size (for faster transfers)\n" \ + " %s Block size (for faster transfer)\n" \ " %S Fundamental block size (for block counts)\n" \ " %t Type in hex\n" \ " %T Type in human readable form" \ @@ -3686,13 +3686,14 @@ USE_FEATURE_RUN_PARTS_FANCY("\n -l Prints names of all matching files even when " 31 46 1365 /etc/passwd\n" #define wget_trivial_usage \ - "[-c|--continue] [-q|--quiet] [-O|--output-document file]\n" \ + "[-c|--continue] [-s|--spider] [-q|--quiet] [-O|--output-document file]\n" \ " [--header 'header: value'] [-Y|--proxy on/off] [-P DIR]\n" \ " [-U|--user-agent agent] url" #define wget_full_usage \ "Retrieve files via HTTP or FTP" \ "\n\nOptions:\n" \ - " -c Continue retrieval of aborted transfers\n" \ + " -s Spider mode - only check file existence\n" \ + " -c Continue retrieval of aborted transfer\n" \ " -q Quiet\n" \ " -P Set directory prefix to DIR\n" \ " -O Save to filename ('-' for stdout)\n" \ diff --git a/networking/wget.c b/networking/wget.c index db22215..94b9b69 100644 --- a/networking/wget.c +++ b/networking/wget.c @@ -120,18 +120,20 @@ int wget_main(int argc, char **argv) */ enum { WGET_OPT_CONTINUE = 0x1, - WGET_OPT_QUIET = 0x2, - WGET_OPT_OUTNAME = 0x4, - WGET_OPT_PREFIX = 0x8, - WGET_OPT_PROXY = 0x10, - WGET_OPT_USER_AGENT = 0x20, - WGET_OPT_PASSIVE = 0x40, - WGET_OPT_HEADER = 0x80, + WGET_OPT_SPIDER = 0x2, + WGET_OPT_QUIET = 0x4, + WGET_OPT_OUTNAME = 0x8, + WGET_OPT_PREFIX = 0x10, + WGET_OPT_PROXY = 0x20, + WGET_OPT_USER_AGENT = 0x40, + WGET_OPT_PASSIVE = 0x80, + WGET_OPT_HEADER = 0x100, }; #if ENABLE_FEATURE_WGET_LONG_OPTIONS static const struct option wget_long_options[] = { // name, has_arg, flag, val { "continue", no_argument, NULL, 'c' }, + { "spider", no_argument, NULL, 's' }, { "quiet", no_argument, NULL, 'q' }, { "output-document", required_argument, NULL, 'O' }, { "directory-prefix", required_argument, NULL, 'P' }, @@ -144,7 +146,7 @@ int wget_main(int argc, char **argv) applet_long_options = wget_long_options; #endif opt_complementary = "-1" USE_FEATURE_WGET_LONG_OPTIONS(":\xfe::"); - opt = getopt32(argc, argv, "cqO:P:Y:U:", + opt = getopt32(argc, argv, "csqO:P:Y:U:", &fname_out, &dir_prefix, &proxy_flag, &user_agent USE_FEATURE_WGET_LONG_OPTIONS(, &headers_llist) @@ -437,7 +439,11 @@ int wget_main(int argc, char **argv) if (ftpcmd("RETR ", target.path, sfp, buf) > 150) bb_error_msg_and_die("bad response to RETR: %s", buf); } - + if (opt & WGET_OPT_SPIDER) { + if (ENABLE_FEATURE_CLEAN_UP) + fclose(sfp); + goto done; + } /* * Retrieve file @@ -499,6 +505,7 @@ int wget_main(int argc, char **argv) bb_error_msg_and_die("ftp error: %s", buf+4); ftpcmd("QUIT", NULL, sfp, buf); } +done: exit(EXIT_SUCCESS); } -- 2.7.4