763252113893b5fa89e1b08a8a306e396770592a hiram Fri Apr 7 12:47:11 2023 -0700 correct header output for plain text and add comment lines as per standard JSON output, TODO: manage error outputs refs #23589 diff --git src/hg/hubApi/apiUtils.c src/hg/hubApi/apiUtils.c index b2928a1..4f1a77d 100644 --- src/hg/hubApi/apiUtils.c +++ src/hg/hubApi/apiUtils.c @@ -710,25 +710,40 @@ dyStringPrintf(genArkPath, "%s/", tmpBuf); safencpy(tmpBuf, sizeof(tmpBuf), genome+7, 3); dyStringPrintf(genArkPath, "%s/", tmpBuf); safencpy(tmpBuf, sizeof(tmpBuf), genome+10, 3); dyStringPrintf(genArkPath, "%s", tmpBuf); return dyStringCannibalize(&genArkPath); } static struct dyString *textOutput = NULL; void textLineOut(char *lineOut) /* accumulate text lines for output in the dyString textOutput */ { if (NULL == textOutput) + { + char outString[1024]; textOutput = dyStringNew(0); + time_t timeNow = time(NULL); + struct tm tm; + gmtime_r(&timeNow, &tm); + safef(outString, sizeof(outString), + "# downloadTime: \"%d:%02d:%02dT%02d:%02d:%02dZ\"", + 1900+tm.tm_year, tm.tm_mon+1, tm.tm_mday, tm.tm_hour, tm.tm_min, + tm.tm_sec); + dyStringPrintf(textOutput, "%s\n", outString); + safef(outString, sizeof(outString), "# downloadTimeStamp: %lld", + (long long) timeNow); + dyStringPrintf(textOutput, "%s\n", outString); + } + dyStringPrintf(textOutput, "%s\n", lineOut); } void textFinishOutput() /* all done with text output, print it all out */ { -puts("Content-Type:text/plain"); +puts("Content-Type:text/plain\n"); printf("%s", dyStringCannibalize(&textOutput)); }