summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Rękorajski2023-09-08 01:01:07 (GMT)
committerJan Rękorajski2023-09-08 01:01:07 (GMT)
commit32578f687fbccd69bfd68d1c698b6ce6fc38f0da (patch)
tree83425b2924d649287a15555d217c62c27f6ead88
parent6c1d1b951911b8ff39133220aad2bebf41080ab1 (diff)
downloadpld-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-xclient/rebuild-kernel-packages.py44
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()