assert(stp);
assert(stp->timing_fp);
- assert(xstep && *xstep);
+ assert(xstep);
step = &stp->step;
*xstep = NULL;
assert(step->name);
assert(step->value);
dprintf(fd, "%10s: %s\n", step->name, step->value);
- DBG(LOG, ul_debug("log signal emited"));
+ DBG(LOG, ul_debug("log header emited"));
return 0;
default:
break; /* continue with real data */
fputs(_(" -s, --typescript <file> deprecated alist to -O\n"), out);
fputs(USAGE_SEPARATOR, out);
+ fputs(_(" --summary display overview about recorded session and exit\n"), out);
fputs(_(" -d, --divisor <num> speed up or slow down execution with time divisor\n"), out);
fputs(_(" -m, --maxdelay <num> wait at most this many seconds between updates\n"), out);
fputs(_(" -x, --stream <name> stream type (out, in, signal or info)\n"), out);
main(int argc, char *argv[])
{
struct replay_setup setup = { .nlogs = 0 };
- struct replay_step *step;
+ struct replay_step *step = NULL;
char streams[6] = {0}; /* IOSI - in, out, signal,info */
const char *log_out = NULL,
*log_in = NULL,
*log_tm = NULL;
double divi = 1, maxdelay = 0;
int diviopt = FALSE, maxdelayopt = FALSE, idx;
- int ch, rc, crmode = REPLAY_CRMODE_AUTO;
+ int ch, rc, crmode = REPLAY_CRMODE_AUTO, summary = 0;
+ enum {
+ OPT_SUMMARY = CHAR_MAX + 1
+ };
static const struct option longopts[] = {
{ "cr-mode", required_argument, 0, 'c' },
{ "divisor", required_argument, 0, 'd' },
{ "maxdelay", required_argument, 0, 'm' },
{ "stream", required_argument, 0, 'x' },
+ { "summary", no_argument, 0, OPT_SUMMARY },
{ "version", no_argument, 0, 'V' },
{ "help", no_argument, 0, 'h' },
{ NULL, 0, 0, 0 }
else
errx(EXIT_FAILURE, _("unsupported stream name: '%s'"), optarg);
break;
+ case OPT_SUMMARY:
+ summary = 1;
+ break;
case 'V':
print_version(EXIT_SUCCESS);
case 'h':
argv += optind;
idx = 0;
+ if (summary)
+ streams[0] = 'H', streams[1] = '\0';
+
if (!log_tm && idx < argc)
log_tm = argv[idx++];
if (!log_out && !log_in && !log_io)
if (rc)
break;
- step->delay /= divi;
- if (maxdelayopt && step->delay > maxdelay)
- step->delay = maxdelay;
- if (step->delay > SCRIPT_MIN_DELAY)
- delay_for(step->delay);
+ if (!summary) {
+ step->delay /= divi;
+ if (maxdelayopt && step->delay > maxdelay)
+ step->delay = maxdelay;
+ if (step->delay > SCRIPT_MIN_DELAY)
+ delay_for(step->delay);
+ }
rc = replay_emit_step_data(&setup, step, STDOUT_FILENO);
} while (rc == 0);