#!/usr/bin/env python3 from requests import get from sys import exit api_key = '${api_key}' try: json = get('http://[::1]:22030/plugin/softwareupdate/check', headers={'X-Api-Key': api_key}).json() except Exception as e: print(repr(e)) exit(3) updates = set() errors = set() for identifier, info in json['information'].items(): if info['updateAvailable']: updates.add(info['displayName']) if not json['environment']['supported']: errors.add('OctoPrint runs in an unsupported environment!') if not json['storage']['sufficient']: errors.add('OctoPrint reports insufficient storage!') for error in sorted(errors): print(error) if len(updates) > 0: print('Updates available: {}'.format(', '.join(sorted(updates)))) if len(errors) > 0: exit(2) elif len(updates) > 0: exit(1) else: print('OK') exit(0)