How do I detect from the command line that a new Fedora release is available?
I want to put code in a shell script to check if there is a new Fedora release available.
On Ubuntu, I can accomplish this with do-release-upgrade -c
. Despite quite a bit of searching, I can't figure out what the equivalent would be for Fedora.
Can anyone advise?
UPDATE: Here's what I ended up doing:
def fedora_release_checker():
try:
os_release = open('/etc/os-release', 'r')
except Exception:
log.exception('Could not open /etc/os-release')
return 'unknown'
try:
version_id_line = next(
l for l in os_release if l.startswith('VERSION_ID=')).strip()
except StopIteration:
log.error('Could not find VERSION_ID= line in /etc/os-release')
return 'unknown'
try:
current_version_number = int(version_id_line[11:])
except Exception:
log.error('Could not parse {} in /etc/os-release'.format(
version_id_line))
return 'unknown'
next_version_number = current_version_number + 1
try:
subprocess.check_output(
('osinfo-query', 'os', 'short-id=fedora{}'.format(
current_version_number)),
stderr=subprocess.STDOUT).decode('utf8')
except Exception:
log.exception('Could not query current release with osinfo-query')
return 'unknown'
try:
subprocess.check_output(
('osinfo-query', 'os', 'short-id=fedora{}'.format(
next_version_number)),
stderr=subprocess.STDOUT).decode('utf8')
except subprocess.CalledProcessError:
return False
except Exception:
log.exception('Error querying next release with osinfo-query')
return 'unknown'
else:
return True