INNER CODE UNIT · Python
validate_version
sun-jiao/flut-renamer · packaging/release_version.py:18
def validate_version(tag, pubspec):
base, _ = parse_tag(tag)
match = re.search(r'^version:\s*([0-9]+\.[0-9]+\.[0-9]+)(?:\+[0-9]+)?\s*$',
pubspec, re.MULTILINE)
if not match:
raise ValueError('Cannot read the version from pubspec.yaml')
if base != match[1]:
raise ValueError(f'Tag base version {base} does not match pubspec.yaml version {match[1]}')
return base
if __name__ == '__main__':
parser = argparse.ArgumentParser(description=__doc__)
parser.add_argument('--tag', required=True)
parser.add_argument('--pubspec', type=Path, default=Path('pubspec.yaml'))
args = parser.parse_args()
try:
print(validate_version(args.tag, args.pubspec.read_text()))