You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

42 lines
1.2 KiB
Python

#!/usr/bin/python2
# Check Java versions against the newest one installed
#
# This assumes that there's OpenJDK installed and kept up to date.
from __future__ import division, print_function
from distutils.version import LooseVersion
from subprocess import check_output
import re
def is_java(package):
filelist = check_output(['rpm', '-ql', package])
return re.search(r'bin/java$', filelist, re.MULTILINE)
def package_version(package):
version_query = ['rpm', '--queryformat', '%{VERSION}', '-q']
version_query.append(package)
version = check_output(version_query)
version = re.sub('_', '.', version)
return version
def java_packages():
all_packages = check_output(['rpm', '-qa']).split('\n')
packages = [package
for package in all_packages
if re.search(r'jdk|jre', package)]
return [package for package in packages if is_java(package)]
versions = [LooseVersion(package_version(package))
for package in java_packages()]
wanted_version = max(versions)
old_versions = [version for version in versions if version < wanted_version]
print('Wanted:', str(wanted_version))
print('Too old:', [str(version) for version in old_versions])