]> arthur.barton.de Git - bup.git/commitdiff
random: convert to internal command
authorRob Browning <rlb@defaultvalue.org>
Mon, 8 Feb 2021 08:30:04 +0000 (02:30 -0600)
committerRob Browning <rlb@defaultvalue.org>
Sat, 6 Mar 2021 18:29:38 +0000 (12:29 -0600)
Signed-off-by: Rob Browning <rlb@defaultvalue.org>
lib/bup/cmd/random.py
lib/cmd/bup

index aaea14f03f90a7616873ef39b962f2dcebbc9de1..c4b234ee0933efc89114b7d416cdec9c61bd4425 100755 (executable)
@@ -1,26 +1,8 @@
-#!/bin/sh
-"""": # -*-python-*-
-# https://sourceware.org/bugzilla/show_bug.cgi?id=26034
-export "BUP_ARGV_0"="$0"
-arg_i=1
-for arg in "$@"; do
-    export "BUP_ARGV_${arg_i}"="$arg"
-    shift
-    arg_i=$((arg_i + 1))
-done
-# Here to end of preamble replaced during install
-bup_python="$(dirname "$0")/../../../config/bin/python" || exit $?
-exec "$bup_python" "$0"
-"""
-# end of bup preamble
 
 from __future__ import absolute_import
-
-# Intentionally replace the dirname "$0" that python prepends
 import os, sys
-sys.path[0] = os.path.dirname(os.path.realpath(__file__)) + '/../..'
 
-from bup import compat, options, _helpers
+from bup import options, _helpers
 from bup.helpers import handle_ctrl_c, log, parse_num
 
 
@@ -31,20 +13,22 @@ S,seed=   optional random number seed [1]
 f,force   print random data to stdout even if it's a tty
 v,verbose print byte counter to stderr
 """
-o = options.Options(optspec)
-(opt, flags, extra) = o.parse(compat.argv[1:])
 
-if len(extra) != 1:
-    o.fatal("exactly one argument expected")
+def main(argv):
+    o = options.Options(optspec)
+    opt, flags, extra = o.parse_bytes(argv[1:])
+
+    if len(extra) != 1:
+        o.fatal("exactly one argument expected")
 
-total = parse_num(extra[0])
+    total = parse_num(extra[0])
 
-handle_ctrl_c()
+    handle_ctrl_c()
 
-if opt.force or (not os.isatty(1) and
-                 not int(os.environ.get('BUP_FORCE_TTY', 0)) & 1):
-    _helpers.write_random(sys.stdout.fileno(), total, opt.seed,
-                          opt.verbose and 1 or 0)
-else:
-    log('error: not writing binary data to a terminal. Use -f to force.\n')
-    sys.exit(1)
+    if opt.force or (not os.isatty(1) and
+                     not int(os.environ.get('BUP_FORCE_TTY', 0)) & 1):
+        _helpers.write_random(sys.stdout.fileno(), total, opt.seed,
+                              opt.verbose and 1 or 0)
+    else:
+        log('error: not writing binary data to a terminal. Use -f to force.\n')
+        sys.exit(1)
index dae89dc6f6a156b1476fe5924b9fe2061ce6bdac..66890d6497ce756a1c87656ec028c26b0de2c33d 100755 (executable)
@@ -197,6 +197,7 @@ try:
                            b'margin',
                            b'memtest',
                            b'meta',
+                           b'random',
                            b'rm',
                            b'split',
                            b'version',