version.py 760 B

12345678910111213141516171819202122232425262728
  1. import argparse
  2. def main():
  3. parser = argparse.ArgumentParser()
  4. parser.add_argument('-n', '--newline', action = 'store_true', help = 'Break line after printing version')
  5. args = parser.parse_args()
  6. end = None if args.newline else ''
  7. version = None
  8. with open('CMakeLists.txt', 'r') as file:
  9. for line in file:
  10. if 'VERSION "' in line and '.${BUILD_NUMBER}"' in line:
  11. line = line.replace('VERSION "', '')
  12. line = line[0 : line.find('.${BUILD_NUMBER}"')].strip()
  13. version = line
  14. break
  15. if version is None:
  16. raise Exception('Unable to read version from CMakeLists.txt')
  17. if len(version) == 0 or not '.' in version:
  18. raise Exception('Bad version: "{0}"'.format(version))
  19. print(version, end = end)
  20. if __name__ == '__main__':
  21. main()