void tup_show_message(const char *s) { const char *tup = " tup "; clear_progress(); color_set(stdout); /* If we get to the end, show a green bar instead of grey. */ if(cur_phase == 5) printf("[%s%s%s] ", color_final(), tup, color_end()); else printf("[%s%.*s%s%.*s] ", color_reverse(), cur_phase, tup, color_end(), 5-cur_phase, tup+cur_phase); timespan_end(&main_ts); if(display_job_time) printf("[%.3fs] ", timespan_seconds(&main_ts)); printf("%s", s); }
void show_result(struct tup_entry *tent, int is_error, struct timespan *ts, const char *extra_text, int always_display) { FILE *f; float tdiff = 0.0; job_time += tent->mtime; if(ts) { tdiff = timespan_seconds(ts); } sum++; if(sum > total) { fprintf(stderr, "tup internal error: progress bar is sized incorrectly.\n"); } if(quiet && !always_display) return; if(is_error) { got_error = 1; f = stderr; } else { f = stdout; } clear_active(f); color_set(f); if(is_error) { fprintf(stderr, "* %s", color_error_mode()); } else { printf(" "); } /* If we aren't going to show a progress bar, then %-complete here is * helpful. */ if(total && !display_progress) fprintf(f, "%3i%% ", percent_complete()); if(display_job_numbers) fprintf(f, "%i) ", sum); if(display_job_time && ts) { fprintf(f, "[%.3fs] ", tdiff); } if(extra_text) fprintf(f, "%s: ", extra_text); print_tup_entry(f, tent); fprintf(f, "\n"); color_error_mode_clear(); }