Add new stdoutOutput field

This commit is contained in:
senhuang42 2020-10-07 13:42:34 -04:00
parent f7d4943788
commit 1ebe360d0f

View File

@ -331,6 +331,7 @@ struct FIO_ctx_s {
/* file i/o info */ /* file i/o info */
int nbFilesTotal; int nbFilesTotal;
int hasStdinInput; int hasStdinInput;
int hasStdoutOutput;
/* file i/o state */ /* file i/o state */
int currFileIdx; int currFileIdx;
@ -388,6 +389,7 @@ FIO_ctx_t* FIO_createContext(void)
ret->currFileIdx = 0; ret->currFileIdx = 0;
ret->hasStdinInput = 0; ret->hasStdinInput = 0;
ret->hasStdoutOutput = 0;
ret->nbFilesTotal = 1; ret->nbFilesTotal = 1;
ret->nbFilesProcessed = 0; ret->nbFilesProcessed = 0;
ret->totalBytesInput = 0; ret->totalBytesInput = 0;
@ -536,6 +538,10 @@ void FIO_setContentSize(FIO_prefs_t* const prefs, int value)
/* FIO_ctx_t functions */ /* FIO_ctx_t functions */
void FIO_setHasStdoutOutput(FIO_ctx_t* const fCtx, int value) {
fCtx->hasStdoutOutput = value;
}
void FIO_setNbFilesTotal(FIO_ctx_t* const fCtx, int value) void FIO_setNbFilesTotal(FIO_ctx_t* const fCtx, int value)
{ {
fCtx->nbFilesTotal = value; fCtx->nbFilesTotal = value;
@ -841,6 +847,7 @@ static void FIO_adjustMemLimitForPatchFromMode(FIO_prefs_t* const prefs,
* If -q is specified with --rm, zstd will abort pre-emptively * If -q is specified with --rm, zstd will abort pre-emptively
* If neither flag is specified, zstd will prompt the user for confirmation to proceed. * If neither flag is specified, zstd will prompt the user for confirmation to proceed.
* If --rm is not specified, then zstd will print a warning to the user (which can be silenced with -q). * If --rm is not specified, then zstd will print a warning to the user (which can be silenced with -q).
* However, if the output is stdout, we will always abort rather than displaying the warning prompt.
*/ */
static int FIO_removeMultiFilesWarning(FIO_ctx_t* const fCtx, const FIO_prefs_t* const prefs, const char* outFileName, int displayLevelCutoff) static int FIO_removeMultiFilesWarning(FIO_ctx_t* const fCtx, const FIO_prefs_t* const prefs, const char* outFileName, int displayLevelCutoff)
{ {
@ -859,9 +866,14 @@ static int FIO_removeMultiFilesWarning(FIO_ctx_t* const fCtx, const FIO_prefs_t*
} }
DISPLAYLEVEL(2, "\nThe concatenated output CANNOT regenerate the original directory tree. ") DISPLAYLEVEL(2, "\nThe concatenated output CANNOT regenerate the original directory tree. ")
if (prefs->removeSrcFile) { if (prefs->removeSrcFile) {
if (fCtx->hasStdoutOutput) {
DISPLAYLEVEL(1, "\nAborting. Use -f if you really want to delete the files and output to stdout");
error = 1;
} else {
error = g_display_prefs.displayLevel > displayLevelCutoff && UTIL_requireUserConfirmation("This is a destructive operation. Proceed? (y/n): ", "Aborting...", "yY", fCtx->hasStdinInput); error = g_display_prefs.displayLevel > displayLevelCutoff && UTIL_requireUserConfirmation("This is a destructive operation. Proceed? (y/n): ", "Aborting...", "yY", fCtx->hasStdinInput);
} }
} }
}
DISPLAY("\n"); DISPLAY("\n");
} }
return error; return error;
@ -1532,8 +1544,9 @@ FIO_compressFilename_internal(FIO_ctx_t* const fCtx,
fCtx->totalBytesInput += (size_t)readsize; fCtx->totalBytesInput += (size_t)readsize;
fCtx->totalBytesOutput += (size_t)compressedfilesize; fCtx->totalBytesOutput += (size_t)compressedfilesize;
DISPLAYLEVEL(2, "\r%79s\r", ""); DISPLAYLEVEL(2, "\r%79s\r", "");
if (g_display_prefs.displayLevel >= 2) { if (g_display_prefs.displayLevel >= 2 &&
if (g_display_prefs.displayLevel >= 3 || fCtx->nbFilesTotal <= 1) { !fCtx->hasStdoutOutput &&
(g_display_prefs.displayLevel >= 3 || fCtx->nbFilesTotal <= 1)) {
if (readsize == 0) { if (readsize == 0) {
DISPLAYLEVEL(2,"%-20s : (%6llu => %6llu bytes, %s) \n", DISPLAYLEVEL(2,"%-20s : (%6llu => %6llu bytes, %s) \n",
srcFileName, srcFileName,
@ -1547,7 +1560,6 @@ FIO_compressFilename_internal(FIO_ctx_t* const fCtx,
dstFileName); dstFileName);
} }
} }
}
/* Elapsed Time and CPU Load */ /* Elapsed Time and CPU Load */
{ clock_t const cpuEnd = clock(); { clock_t const cpuEnd = clock();