]> arthur.barton.de Git - bup.git/blob - lib/bup/cmd/random.py
random: use helpers.istty1
[bup.git] / lib / bup / cmd / random.py
1
2 from __future__ import absolute_import
3 import sys
4
5 from bup import options, _helpers
6 from bup.helpers import handle_ctrl_c, log, parse_num, istty1
7
8
9 optspec = """
10 bup random [-S seed] <numbytes>
11 --
12 S,seed=   optional random number seed [1]
13 f,force   print random data to stdout even if it's a tty
14 v,verbose print byte counter to stderr
15 """
16
17 def main(argv):
18     o = options.Options(optspec)
19     opt, flags, extra = o.parse_bytes(argv[1:])
20
21     if len(extra) != 1:
22         o.fatal("exactly one argument expected")
23
24     total = parse_num(extra[0])
25
26     handle_ctrl_c()
27
28     if opt.force or not istty1:
29         _helpers.write_random(sys.stdout.fileno(), total, opt.seed,
30                               opt.verbose and 1 or 0)
31     else:
32         log('error: not writing binary data to a terminal. Use -f to force.\n')
33         sys.exit(1)