1/* count.c - Progress indicator from stdin to stdout
2 *
3 * Copyright 2002 Rob Landley <rob@landley.net>
4
5USE_COUNT(NEWTOY(count, NULL, TOYFLAG_USR|TOYFLAG_BIN))
6
7config COUNT
8  bool "count"
9  default y
10  help
11    usage: count
12
13    Copy stdin to stdout, displaying simple progress indicator to stderr.
14*/
15
16#include "toys.h"
17
18void count_main(void)
19{
20  uint64_t size = 0;
21  int len;
22  char buf[32];
23
24  for (;;) {
25    len = xread(0, toybuf, sizeof(toybuf));
26    if (!len) break;
27    size += len;
28    xwrite(1, toybuf, len);
29    xwrite(2, buf, sprintf(buf, "%"PRIu64" bytes\r", size));
30  }
31  xwrite(2, "\n", 1);
32}
33