gen_empty_partition.py 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. #!/usr/bin/env python
  2. #
  3. # generates an empty binary file
  4. #
  5. # This tool generates an empty binary file of the required size.
  6. #
  7. # SPDX-FileCopyrightText: 2018-2022 Espressif Systems (Shanghai) CO LTD
  8. # SPDX-License-Identifier: Apache-2.0
  9. from __future__ import division, print_function, unicode_literals
  10. import argparse
  11. import sys
  12. __version__ = '1.0'
  13. quiet = False
  14. def generate_blanked_file(size, output_path):
  15. output = b'\xFF' * size
  16. try:
  17. stdout_binary = sys.stdout.buffer # Python 3
  18. except AttributeError:
  19. stdout_binary = sys.stdout
  20. with stdout_binary if output_path == '-' else open(output_path, 'wb') as f:
  21. f.write(output)
  22. def main():
  23. parser = argparse.ArgumentParser(description='Generates an empty binary file of the required size.')
  24. parser.add_argument('size', help='Size of generated the file', type=str)
  25. parser.add_argument('output', help='Path for binary file.', nargs='?', default='-')
  26. args = parser.parse_args()
  27. size = int(args.size, 0)
  28. if size > 0:
  29. generate_blanked_file(size, args.output)
  30. return 0
  31. class InputError(RuntimeError):
  32. def __init__(self, e):
  33. super(InputError, self).__init__(e)
  34. if __name__ == '__main__':
  35. try:
  36. r = main()
  37. sys.exit(r)
  38. except InputError as e:
  39. print(e, file=sys.stderr)
  40. sys.exit(2)