From 47f6983148047975e00f48b1ef77f8c4c7f2fd73 Mon Sep 17 00:00:00 2001 From: Ryo Nakamura Date: Tue, 25 Oct 2022 01:47:39 +0900 Subject: wrap print progress in pprint --- src/pprint.c | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 src/pprint.c (limited to 'src/pprint.c') diff --git a/src/pprint.c b/src/pprint.c new file mode 100644 index 0000000..51eb4ad --- /dev/null +++ b/src/pprint.c @@ -0,0 +1,32 @@ +#include +#include +#include + +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); + } +} + -- cgit v1.2.3