a44421a79fb36cc2036fe116b97ea3bc9590cd0c
braney
  Fri Dec 2 09:34:39 2011 -0800
removed rcsid (#295)
diff --git src/utils/wgetMd5/wgetMd5.c src/utils/wgetMd5/wgetMd5.c
index 2da98d3..d59cf4b 100644
--- src/utils/wgetMd5/wgetMd5.c
+++ src/utils/wgetMd5/wgetMd5.c
@@ -1,138 +1,137 @@
 /* wgetMd5 - Get files from ftp or http site and check their md5's. */
 #include "common.h"
 #include "linefile.h"
 #include "hash.h"
 #include "dystring.h"
 #include "options.h"
 
-static char const rcsid[] = "$Id: wgetMd5.c,v 1.3 2005/11/18 16:37:09 kent Exp $";
 
 void usage()
 /* Explain usage and exit. */
 {
 errAbort(
   "wgetMd5 - Get files from ftp or http site and check their md5's.\n"
   "usage:\n"
   "   wgetMd5 uri check.md5 outDir\n"
   "The uri is something like:\n"
   "   ftp://ftp.ncbi.nih.gov/pub/genbank\n"
   "The check.md5 is a two column file containing md5 sums file names.\n"
   "The outDir is where to put the resulting downloads\n"
   "options:\n"
   "   -tmp=XXX - Use this temporary file instead of default wgetMd5.tmp\n"
   "   -md5tmp=XXX - Use this temporary file instead of default wgetMd5.md5\n"
   "   -maxErrs=N - Maximum errors allowed before aborting, default 100\n"
   "   -verbose=N - Set stderr verbosity:  0 quiet, 1 status, 2 debug\n");
 }
 
 char *tmpName = "wgetMd5.tmp";
 char *md5tmp = "wgetMd5.md5";
 int errCount = 0, maxErrs = 100;
 
 static struct optionSpec options[] = {
    {"tmp", OPTION_STRING},
    {"maxErrs", OPTION_INT},
    {NULL, 0},
 };
 
 boolean safeGetOne(char *source, char *md5, char *dest)
 /* Fetch file from source to tmp file.  Check md5.  If
  * it doesn't work return FALSE.  If it does work
  * rename tmp file to dest and return TRUE. */
 {
 struct dyString *command = dyStringNew(0);
 boolean ok = TRUE;
 int err;
 
 dyStringClear(command);
 dyStringPrintf(command, "wget -nv --timestamping -O %s '%s'", 
     tmpName, source);
 verbose(1, "%s\n", command->string);
 if ((err = system(command->string)) < 0)
     {
     warn("Error %d on %s", err, command->string);
     ok = FALSE;
     }
 verbose(1, "wget returned %d\n", err);
 
 /* Make up a little md5 file. */
 if (ok)
     {
     FILE *f = mustOpen(md5tmp, "w");
     fprintf(f, "%s  %s\n", md5, tmpName);
     carefulClose(&f);
 
     /* Run md5sum. */
     dyStringClear(command);
     dyStringPrintf(command, "md5sum -c %s", md5tmp);
     verbose(1, "%s\n", command->string);
     err = system(command->string);
     verbose(1, "md5sum returned %d\n", err);
     if (err != 0)
 	{
 	warn("md5sum failed on %s", source);
 	ok = FALSE;
 	}
     }
 
 /* Rename file to proper name */
 if (ok)
     {
     if ((err = rename(tmpName, dest)) < 0)
 	errnoAbort("Couldn't rename %s to %s", tmpName, dest);
     }
 dyStringFree(&command);
 return ok;
 }
 
 void wgetMd5(char *uri, char *checkMd5, char *outDir)
 /* wgetMd5 - Get files from ftp or http site and check their md5's. */
 {
 char source[PATH_LEN], dest[PATH_LEN];
 char dir[PATH_LEN], file[PATH_LEN], ext[PATH_LEN];
 struct lineFile *lf = lineFileOpen(checkMd5, TRUE);
 char *line, *md5, *relativePath;
 
 struct dyString *command = dyStringNew(0);
 
 while(lineFileNext(lf, &line, NULL))
     {
     /* Parse out two columns of checkMd5 file. */
     md5 = nextWord(&line);
     relativePath = skipLeadingSpaces(line);
 
     /* Figure out output path, and if file already exists skip it. */
     safef(dest, sizeof(dest), "%s/%s", outDir, relativePath);
     if (!fileExists(dest))
 	{
 	/* Create any directories needed. */
 	splitPath(relativePath, dir, file, ext);
 	dyStringClear(command);
 	dyStringPrintf(command, "mkdir -p '%s/%s'", outDir, dir);
 	system(command->string);
 
 	/* wget the file. */
 	safef(source, sizeof(source), "%s/%s", uri, relativePath);
 	if (!safeGetOne(source, md5, dest))
 	    if (++errCount > maxErrs)
 	       errAbort("Aborting after %d errors", errCount);
 	}
     else
         {
 	verbose(1, "Already have %s\n", dest);
 	}
     }
 }
 
 int main(int argc, char *argv[])
 /* Process command line. */
 {
 optionInit(&argc, argv, options);
 if (argc != 4)
     usage();
 tmpName = optionVal("tmp", tmpName);
 md5tmp = optionVal("md5tmp", md5tmp);
 maxErrs = optionInt("maxErrs", maxErrs);
 wgetMd5(argv[1], argv[2], argv[3]);
 return 0;
 }