479c4a161664ee3481d0661d134d56a566d43018 tdreszer Mon Jun 6 16:16:02 2011 -0700 Almost broke beta downloads page. QA would have given me grief. diff --git src/hg/lib/fileUi.c src/hg/lib/fileUi.c index 7df9a15..a931b59 100644 --- src/hg/lib/fileUi.c +++ src/hg/lib/fileUi.c @@ -48,58 +48,36 @@ || savedSubDir == NULL || differentString(savedSubDir,subDir)) { // free up any static mem freeMem(savedDb); freeMem(savedDir); freeMem(savedSubDir); fileDbFree(&foundFiles); FILE *scriptOutput = NULL; char buf[1024]; char cmd[512]; char *words[10]; char *server = hDownloadsServer(); boolean useRsync = TRUE; -//#define RSYNC_DONT_WORK_ON_HGWDEV -#ifdef RSYNC_DONT_WORK_ON_HGWDEV - if (hIsPrivateHost() || hIsPreviewHost()) - { - // For hgwdev (which is the same machine as "hgdownload-test.cse.ucsc.edu") rsync does not work - // Use ls -log --time=ctime --time-style=long-iso /usr/local/apache/htdocs-hgdownload/goldenPath/hg19/encodeDCC/wgEncodeBroadHistone - safef(cmd,sizeof(cmd),"ls -log --time-style=long-iso /usr/local/apache/htdocs-hgdownload/goldenPath/%s/%s/%s/", db,dir,subDir); - useRsync = FALSE; - } - else if (hIsBetaHost()) - { - // For hgwbeta, the files are being looked for one test in a "beta/" subdir. Have to rsync - //server = "hgdownload-test.cse.ucsc.edu"; // NOTE: Force this case because beta may think it's downloads server is "hgdownload.cse.ucsc.edu" - //safef(cmd,sizeof(cmd),"rsync -avn rsync://%s/goldenPath/%s/%s/%s/beta/", server, db, dir, subDir); - // FIXME: Need cluster-admins help to get rsync solution - safef(cmd,sizeof(cmd),"ls -log --time-style=long-iso /hive/groups/encode/dcc/pipeline/downloads/%s/%s/beta/", db,subDir); - useRsync = FALSE; - } - else // genome and hgwbeta can use rsync -#endif///def RSYNC_DONT_WORK_ON_HGWDEV - { // Works: rsync -avn rsync://hgdownload.cse.ucsc.edu/goldenPath/hg18/encodeDCC/wgEncodeBroadChipSeq/ if (hIsBetaHost()) safef(cmd,sizeof(cmd),"rsync -n rsync://hgdownload-test.cse.ucsc.edu/goldenPath/%s/%s/%s/beta/", db, dir, subDir); // NOTE: Force this case because beta may think it's downloads server is "hgdownload.cse.ucsc.edu" else safef(cmd,sizeof(cmd),"rsync -n rsync://%s/goldenPath/%s/%s/%s/", server, db, dir, subDir); - } - //warn("cmd: %s",cmd); + scriptOutput = popen(cmd, "r"); while(fgets(buf, sizeof(buf), scriptOutput)) { eraseTrailingSpaces(buf); if (!endsWith(buf,".md5sum")) // Just ignore these { int count = chopLine(buf, words); if (count >= 6 && useRsync == FALSE) // hgwdev is same as hgdownloads-test so can't use rsync { //-rw-rw-r-- 5 502826550 2010-10-22 16:51 /usr/local/apache/htdocs-hgdownload/goldenPath/hg19/encodeDCC/wgEncodeBroadHistone/wgEncodeBroadHistoneGm12878ControlStdRawDataRep1.fastq.gz AllocVar(oneFile); oneFile->fileSize = sqlUnsignedLong(words[2]); oneFile->fileDate = cloneString(words[3]); char *atSlash = strrchr(words[5], '/'); if (atSlash != NULL) @@ -461,78 +439,79 @@ return count; } static void filesDownloadsPreamble(char *db, struct trackDb *tdb) { // Do not bother getting preamble.html // 1) It isn't on the RR (yet) // 2) It will likely refer back to the composite for Description info which is included in this page // 3) The rsync-to-tmp-file hurdle isn't worth the effort. cgiDown(0.7); puts("Data is RESTRICTED FROM USE"); puts("in publication until the restriction date noted for the given data file."); char *server = hDownloadsServer(); char *subDir = ""; +if (hIsBetaHost()) + { + server = "hgdownload-test.cse.ucsc.edu"; // NOTE: Force this case because beta may think it's downloads server is "hgdownload.cse.ucsc.edu" + subDir = "/beta"; + } + cgiDown(0.7); puts("Supporting documents:"); printf("
• files.txt is a tab-separated file with the name and metadata for each download.\n", server,db,ENCODE_DCC_DOWNLOADS, tdb->track, subDir); printf("
• md5sum.txt is a list of the md5sum output for each download.\n", server,db,ENCODE_DCC_DOWNLOADS, tdb->track, subDir); -if (hIsBetaHost()) - { - server = "hgdownload-test.cse.ucsc.edu"; // NOTE: Force this case because beta may think it's downloads server is "hgdownload.cse.ucsc.edu" - subDir = "/beta"; - } struct fileDb *oneFile = fileDbGet(db, ENCODE_DCC_DOWNLOADS, tdb->track, "supplemental"); if (oneFile != NULL) { printf("
• Supplemental materials contains additional files provided by the laboratory related to these downloads.\n", server,db,ENCODE_DCC_DOWNLOADS, tdb->track, subDir); } } static int filesPrintTable(char *db, struct trackDb *parentTdb, struct fileDb *fileList, sortOrder_t *sortOrder,boolean filterable) // Prints filesList as a sortable table. Returns count { // Table class=sortable int columnCount = 0; int restrictedColumn = 0; char *nowrap = (sortOrder->setting != NULL ? " nowrap":""); // Sort order trackDb setting found so rely on
in titles for wrapping printf("\n"); printf("\n"); printf("\n"); printf("\n"); columnCount++; -/*#define SHOW_FOLDER_FRO_COMPOSITE_DOWNLOADS -#ifdef SHOW_FOLDER_FRO_COMPOSITE_DOWNLOADS +/*#define SHOW_FOLDER_FOR_COMPOSITE_DOWNLOADS +#ifdef SHOW_FOLDER_FOR_COMPOSITE_DOWNLOADS if (parentTdb == NULL) { printf(""); columnCount++; } -#endif///def SHOW_FOLDER_FRO_COMPOSITE_DOWNLOADS +#endif///def SHOW_FOLDER_FOR_COMPOSITE_DOWNLOADS */ // Now the columns int curOrder = 0,ix=0; if (sortOrder) { curOrder = sortOrder->count; for(ix=0;ixcount;ix++) { char *align = (sameString("labVersion",sortOrder->column[ix]) || sameString("softwareVersion",sortOrder->column[ix]) ? " align='left'":""); printf("\n", sortOrder->order[ix],(sortOrder->forward[ix]?"":" sortRev"), (sameString("fileSize",sortOrder->column[ix])?"abbr='use' ":""), nowrap,align,sortOrder->title[ix]); // keeing track of sortOrder columnCount++; if (sameWord(sortOrder->column[ix],"dateUnrestricted"))
 "); int filesCount = slCount(fileList); if (filesCount > 5) printf("%d files",filesCount); //if (sortOrder) // NOTE: This could be done to preserve sort order FIXME: However hgFileUi would need form OR changes would need to be ajaxed over AND hgsid would be needed. // printf("",sortOrder->htmlId, sortOrder->sortOrder); printf(" %s