diff options
author | Jan Rękorajski | 2023-09-08 01:01:07 (GMT) |
---|---|---|
committer | Jan Rękorajski | 2023-09-08 01:01:07 (GMT) |
commit | 32578f687fbccd69bfd68d1c698b6ce6fc38f0da (patch) | |
tree | 83425b2924d649287a15555d217c62c27f6ead88 | |
parent | 6c1d1b951911b8ff39133220aad2bebf41080ab1 (diff) | |
download | pld-builder.new-32578f687fbccd69bfd68d1c698b6ce6fc38f0da.zip pld-builder.new-32578f687fbccd69bfd68d1c698b6ce6fc38f0da.tar.gz |
- add dry_run option
- print kernels versions only when upgrading
- sort kernels to build modules for
-rwxr-xr-x | client/rebuild-kernel-packages.py | 44 |
1 files changed, 25 insertions, 19 deletions
diff --git a/client/rebuild-kernel-packages.py b/client/rebuild-kernel-packages.py index 22072d6..9429e27 100755 --- a/client/rebuild-kernel-packages.py +++ b/client/rebuild-kernel-packages.py @@ -53,12 +53,14 @@ def clean_pkgname(package): branch = "master" return [name, spec, branch] -def run_command(command, verbose=False, quiet=True): +def run_command(command, verbose=False, dry_run=False, quiet=True): + if verbose or dry_run: + print(' '.join(command)) + if dry_run: + return(True, '') gitproc = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, bufsize=-1, text=True) gitproc.wait() out = gitproc.stdout.read().strip("\n'") - if verbose: - print(' '.join(command)) if not quiet: print(out) if gitproc.returncode != 0: @@ -164,6 +166,9 @@ def main(): parser.add_argument('-v', '--verbose', action='store_true', help='Be verbose when running commands (default: %(default)s)') + parser.add_argument('--dry-run', + action='store_true', + help='Do not run builder commands, just show them (default: %(default)s)') args = parser.parse_args() build_mode = '-r' @@ -184,6 +189,20 @@ def main(): build_kernels = args.kernel if not args.noinstall: + print('\nCurrent kernels versions:') + all_kernels = set() + for kernel_list in packages.values(): + all_kernels.update(kernel_list) + all_kernels = list(all_kernels) + # TDOD: convert this to key function + # https://docs.python.org/3/library/stdtypes.html#list.sort + all_kernels.sort(key=functools.cmp_to_key(kernel_cmp), reverse=True) + for kernel in all_kernels: + branch = 'master' + if kernel != 'head': + branch = 'LINUX_%s' % kernel.replace('.','_') + print('%s: %s' % (kernel, get_last_tag('kernel', 'kernel.spec', branch, dist=args.dist, kernel=kernel, verbose=args.verbose))) + source_packages = [] for kernel in supported_kernels: if kernel == 'head': @@ -200,20 +219,6 @@ def main(): run_command(shlex.split(command), verbose=args.verbose, quiet=False) input('\nPress Enter after src builder updates kernel packages...') - print('\nCurrent kernels versions:') - all_kernels = set() - for kernel_list in packages.values(): - all_kernels.update(kernel_list) - all_kernels = list(all_kernels) - # TDOD: convert this to key function - # https://docs.python.org/3/library/stdtypes.html#list.sort - all_kernels.sort(key=functools.cmp_to_key(kernel_cmp), reverse=True) - for kernel in all_kernels: - branch = 'master' - if kernel != 'head': - branch = 'LINUX_%s' % kernel.replace('.','_') - print('%s: %s' % (kernel, get_last_tag('kernel', 'kernel.spec', branch, dist=args.dist, kernel=kernel, verbose=args.verbose))) - for pkg, kernels in packages.items(): try: name, spec, branch = clean_pkgname(pkg) @@ -223,7 +228,8 @@ def main(): continue if not set(kernels).symmetric_difference(args.skip): continue - selected_kernels = set(kernels).intersection(build_kernels) + selected_kernels = sorted(set(kernels).intersection(build_kernels), + key=functools.cmp_to_key(kernel_cmp), reverse=True) if not selected_kernels: continue if args.test_build: @@ -240,7 +246,7 @@ def main(): spec = '%s:%s' % (spec, tag) command = ("%s -nd %s -d %s --define 'build_kernels %s' --without userspace %s" % (args.make_request, build_mode, args.dist, ','.join(selected_kernels), spec)) - run_command(shlex.split(command), verbose=args.verbose, quiet=False) + run_command(shlex.split(command), verbose=args.verbose, dry_run=args.dry_run, quiet=False) if __name__ == "__main__": main() |