cmd/zerofile.py
Ethan Dalool 4a9051e617
Big migrations and linting.
With pathclass.glob_many, we can clean up and feel more confident
about many programs that use pipeable to take glob patterns.

Added return 0 to all programs that didn't have it, so we have
consistent and explicit command line return values.

Other linting and whitespace.
2021-09-23 23:42:45 -07:00

34 lines
809 B
Python

import argparse
import os
import sys
from voussoirkit import bytestring
filename = os.path.abspath(sys.argv[1])
def zerofile(filename, length):
if os.path.exists(filename):
raise ValueError(f'{filename} already exists.')
with open(filename, 'wb') as handle:
handle.seek(length - 1)
handle.write(bytes([0]))
def zerofile_argparse(args):
return zerofile(
filename=args.filename,
length=bytestring.parsebytes(args.length),
)
def main(argv):
parser = argparse.ArgumentParser(description=__doc__)
parser.add_argument('filename')
parser.add_argument('length')
parser.set_defaults(func=zerofile_argparse)
args = parser.parse_args(argv)
return args.func(args)
if __name__ == '__main__':
raise SystemExit(main(sys.argv[1:]))