summaryrefslogtreecommitdiff
path: root/client/rebuild-kernel-packages.py
diff options
context:
space:
mode:
Diffstat (limited to 'client/rebuild-kernel-packages.py')
-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()