#!/usr/bin/env python3 import argparse import json import sys from distutils.version import StrictVersion def main(current, releases_json): try: version = StrictVersion(current) except ValueError: print(f"Version number '{current}' isn't valid") sys.exit(1) releases = json.loads(releases_json) latest_release = releases["releases"][0]["id"] if version != latest_release: print( "Version number '{}' doesn't match latest release {}".format( current, latest_release ) ) sys.exit(1) print(f"Version number '{current}' is latest release!") if __name__ == "__main__": parser = argparse.ArgumentParser( description=""" Exit with code 0 if the given version matches the latest one from the list of releases found in releases_json. Primary use is to check whether the current version can be safely pushed as the latest one on the docker Hub. """ ) parser.add_argument("current", help="Current version") parser.add_argument("releases_json", type=argparse.FileType("r")) args = parser.parse_args() main(args.current, args.releases_json.read())