]> git.pld-linux.org Git - projects/pld-builder.new.git/commitdiff
- add dry_run option
authorJan Rękorajski <baggins@pld-linux.org>
Fri, 8 Sep 2023 01:01:07 +0000 (10:01 +0900)
committerJan Rękorajski <baggins@pld-linux.org>
Fri, 8 Sep 2023 01:01:07 +0000 (10:01 +0900)
- print kernels versions only when upgrading
- sort kernels to build modules for

client/rebuild-kernel-packages.py

index 22072d6eb217a1ef290d932e092435f1e83bbc5e..9429e2768353fa6d2fa11c243e237eb66bcce416 100755 (executable)
@@ -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()
This page took 0.567809 seconds and 4 git commands to generate.