diff --git a/common/arg.cpp b/common/arg.cpp index ef8a1a0f1224c..172f1e3322796 100644 --- a/common/arg.cpp +++ b/common/arg.cpp @@ -54,6 +54,13 @@ #endif #define LLAMA_MAX_URL_LENGTH 2084 // Maximum URL Length in Chrome: 2083 +// isatty +#if defined(_WIN32) +#include +#else +#include +#endif + using json = nlohmann::ordered_json; std::initializer_list mmproj_examples = { @@ -100,6 +107,14 @@ static void write_file(const std::string & fname, const std::string & content) { } } +static bool is_output_a_tty() { +#if defined(_WIN32) + return _isatty(_fileno(stdout)); +#else + return isatty(1); +#endif +} + common_arg & common_arg::set_examples(std::initializer_list examples) { this->examples = std::move(examples); return *this; @@ -660,7 +675,11 @@ static std::string show_masked_url(const common_url & parts) { return parts.scheme + "://" + (parts.user.empty() ? "" : "****:****@") + parts.host + parts.path; } -static void print_progress(size_t current, size_t total) { // TODO isatty +static void print_progress(size_t current, size_t total) { + if (!is_output_a_tty()) { + return; + } + if (!total) { return; }