Skip to content
Snippets Groups Projects
Commit c287332d authored by Stéphane Diemer's avatar Stéphane Diemer
Browse files

Fixed selection of packages to purge in kernels cleaner.

parent 6cfa8baf
No related branches found
No related tags found
No related merge requests found
......@@ -46,6 +46,7 @@ def clean_kernels():
version = m.groups()[2]
if version[-1] == '-':
version = version[:-1]
version = [int(v) for v in version.replace('-', '.').split('.')]
kernels.append((line.split('\t')[0], version))
log('Installed kernels:\n\t' + '\n\t'.join([n for n, v in kernels]))
# get current kernel
......@@ -57,22 +58,23 @@ def clean_kernels():
log(RED + 'Failed to get current kernel.' + DEFAULT + '\nOut: ' + out + '\nErr: ' + err, error=True)
return 1
try:
current = out.split(' ')[2]
if current.endswith('-generic'):
current = current[:-8]
current_str = out.split(' ')[2]
if current_str.endswith('-generic'):
current_str = current_str[:-8]
current = [int(v) for v in current_str.replace('-', '.').split('.')]
except Exception as e:
log(RED + 'Failed to get current kernel.' + DEFAULT + '\nError: ' + e, error=True)
return 1
log('Current kernel is: ' + PURPLE + current + DEFAULT)
log('Current kernel is: ' + PURPLE + current_str + DEFAULT)
# get most recent kernel
latest = current
for name, version in kernels:
if version > latest:
latest = version
# get kernel packages to purge
to_purge = list()
current_t = current.replace('-', '.').split('.')
latest = current_t
for name, version in kernels:
version_t = version.replace('-', '.').split('.')
if version_t > latest:
latest = version_t
elif version_t < latest and version != current:
if version < latest and version != current:
to_purge.append(name)
if not to_purge:
log('No kernel package to purge.')
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment