generate_c_h_header.py 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. #!/usr/bin/python3
  2. import glob,os,sys
  3. def get_header_def_val(prefix_str, file_name):
  4. file_name_up = file_name.split(".")[0].upper()
  5. if len(prefix_str) == 0:
  6. format_str = "_ZEPHYR_POLLING_%s_H_" % (file_name_up)
  7. else:
  8. format_str = "_ZEPHYR_POLLING_%s_%s_H_" % (prefix_str.upper(), file_name_up)
  9. return format_str
  10. def clear_content(pfile):
  11. pfile.seek(0)
  12. pfile.truncate()
  13. def guard(prefix_str, file_name):
  14. file = open(file_name, 'r+')
  15. content = file.read()
  16. file_name_format = get_header_def_val(prefix_str, file_name)
  17. guard_begin = '#ifndef ' + file_name_format + '\n' \
  18. '#define ' + file_name_format + '\n\n'
  19. guard_end = '\n#endif /* %s */' % (file_name_format)
  20. new_content = guard_begin + content + guard_end
  21. if content.find(guard_begin) >= 0:
  22. return
  23. clear_content(file)
  24. file.write(new_content)
  25. if __name__ == '__main__':
  26. search_dir = ""
  27. if len(sys.argv) == 1:
  28. sys.exit('Please provide a directory')
  29. else:
  30. search_dir = sys.argv[1]
  31. prefix = ""
  32. if len(sys.argv) == 3:
  33. prefix = sys.argv[2]
  34. # enter search directory
  35. os.chdir(search_dir)
  36. for file in glob.glob("*.h"):
  37. guard(prefix, file)