Include module for desktop build
This commit is contained in:
@@ -0,0 +1,48 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
import os, sys
|
||||
|
||||
from random import randrange
|
||||
|
||||
import argparse
|
||||
|
||||
def main():
|
||||
CHUNKSIZE=2**20
|
||||
|
||||
parser = argparse.ArgumentParser(prog="randfile", description="Create a file of pseudorandom bytes (not cryptographically secure).")
|
||||
|
||||
parser.add_argument('-b', '--num-bytes', help="how many bytes to write per output file (default 20)", type=int, metavar="BYTES", default=20)
|
||||
parser.add_argument('-f', '--output-file-prefix', help="prefix of the name of the output file to create and fill with random bytes (default \"randfile\"", metavar="OUTFILEPRE", default="randfile")
|
||||
parser.add_argument('-n', '--num-files', help="how many files to write (default 1)", type=int, metavar="FILES", default=1)
|
||||
parser.add_argument('-F', '--force', help='overwrite any file already present', action='store_true')
|
||||
parser.add_argument('-p', '--progress', help='write an "x" for every file completed and a "." for every %d bytes' % CHUNKSIZE, action='store_true')
|
||||
args = parser.parse_args()
|
||||
|
||||
for i in xrange(args.num_files):
|
||||
bytesleft = args.num_bytes
|
||||
outputfname = args.output_file_prefix + "." + str(i)
|
||||
|
||||
if args.force:
|
||||
f = open(outputfname, "wb")
|
||||
else:
|
||||
flags = os.O_WRONLY|os.O_CREAT|os.O_EXCL | (hasattr(os, 'O_BINARY') and os.O_BINARY)
|
||||
fd = os.open(outputfname, flags)
|
||||
f = os.fdopen(fd, "wb")
|
||||
zs = [0]*CHUNKSIZE
|
||||
ts = [256]*CHUNKSIZE
|
||||
while bytesleft >= CHUNKSIZE:
|
||||
f.write(''.join(map(chr, map(randrange, zs, ts))))
|
||||
bytesleft -= CHUNKSIZE
|
||||
|
||||
if args.progress:
|
||||
sys.stdout.write(".") ; sys.stdout.flush()
|
||||
|
||||
zs = [0]*bytesleft
|
||||
ts = [256]*bytesleft
|
||||
f.write(''.join(map(chr, map(randrange, zs, ts))))
|
||||
|
||||
if args.progress:
|
||||
sys.stdout.write("x") ; sys.stdout.flush()
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user