From c287332dc6f28bc60cf2b167c174cfb6dae409ed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Diemer?= <stephane.diemer@ubicast.eu> Date: Fri, 14 Oct 2016 15:32:27 +0200 Subject: [PATCH] Fixed selection of packages to purge in kernels cleaner. --- kernels_cleaner.py | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/kernels_cleaner.py b/kernels_cleaner.py index 573f0210..61d0ddea 100755 --- a/kernels_cleaner.py +++ b/kernels_cleaner.py @@ -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.') -- GitLab