wrap print progress in pprint

This commit is contained in:
Ryo Nakamura
2022-10-25 01:47:39 +09:00
parent c83927cd5a
commit 47f6983148
6 changed files with 84 additions and 40 deletions

32
src/pprint.c Normal file
View File

@@ -0,0 +1,32 @@
#include <stdio.h>
#include <stdarg.h>
#include <pthread.h>
static int pprint_level = 1;
/* level 1: print progress bar only.
* level 2: print copy start/done messages.
* level 3: print ssh connection establishment/disconnection.
* level 4: print chunk information.
*/
static pthread_mutex_t pprint_lock = PTHREAD_MUTEX_INITIALIZER;
void pprint_set_level(int level)
{
pprint_level = level;
}
void pprint(int level, const char *fmt, ...)
{
va_list va;
if (level <= pprint_level) {
pthread_mutex_lock(&pprint_lock);
va_start(va, fmt);
vfprintf(stdout, fmt, va);
fflush(stdout);
va_end(va);
pthread_mutex_unlock(&pprint_lock);
}
}