- add -s|--spider which only checks if the file exists but does not download it's...
authorBernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Thu, 5 Apr 2007 10:31:47 +0000 (10:31 -0000)
committerBernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Thu, 5 Apr 2007 10:31:47 +0000 (10:31 -0000)
  Closes #1291

include/usage.h
networking/wget.c

index 1889010..f4edf05 100644 (file)
@@ -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" \
index db22215..94b9b69 100644 (file)
@@ -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);
 }