bundlewrap/bundles/octoprint/files/check_octoprint_update

38 lines
790 B
Plaintext
Raw Normal View History

2020-11-21 19:35:29 +00:00
#!/usr/bin/env python3
from sys import exit
2023-02-05 16:30:58 +00:00
from requests import get
2020-11-21 19:35:29 +00:00
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()
for identifier, info in json['information'].items():
if info['updateAvailable']:
updates.add('{} ({} → {})'.format(
info['displayName'],
info['information']['local']['value'],
info['information']['remote']['value'],
))
2020-11-21 19:35:29 +00:00
if len(updates) > 0:
print('{} update{} available'.format(
len(updates),
'' if len(updates) == 1 else 's',
))
for line in sorted(updates):
print(line)
2020-11-21 19:35:29 +00:00
exit(2)
else:
print('OK')
exit(0)