Gentoo Archives: gentoo-catalyst

From: Matt Turner <mattst88@g.o>
To: gentoo-catalyst@l.g.o
Cc: Matt Turner <mattst88@g.o>
Subject: [gentoo-catalyst] [PATCH 01/37] catalyst: Use early return to unindent code
Date: Wed, 21 Oct 2020 00:24:02
Message-Id: 20201021002344.378131-1-mattst88@gentoo.org
1 Signed-off-by: Matt Turner <mattst88@g.o>
2 ---
3 catalyst/base/stagebase.py | 521 +++++++++++++++++++------------------
4 1 file changed, 269 insertions(+), 252 deletions(-)
5
6 diff --git a/catalyst/base/stagebase.py b/catalyst/base/stagebase.py
7 index 2e313bd8..48157837 100644
8 --- a/catalyst/base/stagebase.py
9 +++ b/catalyst/base/stagebase.py
10 @@ -330,9 +330,10 @@ class StageBase(TargetBase, ClearBase, GenBase):
11 and self.resume.is_enabled("setup_target_path"):
12 log.notice(
13 'Resume point detected, skipping target path setup operation...')
14 - else:
15 - self.resume.enable("setup_target_path")
16 - ensure_dirs(self.settings["storedir"] + "/builds")
17 + return
18 +
19 + self.resume.enable("setup_target_path")
20 + ensure_dirs(self.settings["storedir"] + "/builds")
21
22 def set_fsscript(self):
23 if self.settings["spec_prefix"] + "/fsscript" in self.settings:
24 @@ -808,18 +809,19 @@ class StageBase(TargetBase, ClearBase, GenBase):
25 and self.resume.is_enabled("setup_confdir"):
26 log.notice(
27 'Resume point detected, skipping setup_confdir operation...')
28 - else:
29 - if "portage_confdir" in self.settings:
30 - log.info('Configuring %s...', self.settings['port_conf'])
31 - dest = normpath(
32 - self.settings['chroot_path'] + '/' + self.settings['port_conf'])
33 - ensure_dirs(dest)
34 - # The trailing slashes on both paths are important:
35 - # We want to make sure rsync copies the dirs into each
36 - # other and not as subdirs.
37 - cmd(['rsync', '-a', self.settings['portage_confdir'] + '/', dest + '/'],
38 - env=self.env)
39 - self.resume.enable("setup_confdir")
40 + return
41 +
42 + if "portage_confdir" in self.settings:
43 + log.info('Configuring %s...', self.settings['port_conf'])
44 + dest = normpath(
45 + self.settings['chroot_path'] + '/' + self.settings['port_conf'])
46 + ensure_dirs(dest)
47 + # The trailing slashes on both paths are important:
48 + # We want to make sure rsync copies the dirs into each
49 + # other and not as subdirs.
50 + cmd(['rsync', '-a', self.settings['portage_confdir'] + '/', dest + '/'],
51 + env=self.env)
52 + self.resume.enable("setup_confdir")
53
54 def portage_overlay(self):
55 """ We copy the contents of our overlays to /usr/local/portage """
56 @@ -934,61 +936,62 @@ class StageBase(TargetBase, ClearBase, GenBase):
57 and self.resume.is_enabled("chroot_setup"):
58 log.notice(
59 'Resume point detected, skipping chroot_setup operation...')
60 - else:
61 - log.notice('Setting up chroot...')
62 + return
63
64 - shutil.copy('/etc/resolv.conf',
65 - self.settings['chroot_path'] + '/etc/')
66 + log.notice('Setting up chroot...')
67
68 - # Copy over the binary interpreter (qemu), if applicable; note that it's given
69 - # as full path and goes to the same place in the chroot
70 - if "interpreter" in self.settings:
71 - if not os.path.exists(self.settings["interpreter"]):
72 - raise CatalystError(
73 - "Can't find interpreter " +
74 - self.settings["interpreter"],
75 - print_traceback=True)
76 + shutil.copy('/etc/resolv.conf',
77 + self.settings['chroot_path'] + '/etc/')
78
79 - log.notice('Copying binary interpreter %s into chroot',
80 - self.settings['interpreter'])
81 + # Copy over the binary interpreter (qemu), if applicable; note that it's given
82 + # as full path and goes to the same place in the chroot
83 + if "interpreter" in self.settings:
84 + if not os.path.exists(self.settings["interpreter"]):
85 + raise CatalystError(
86 + "Can't find interpreter " +
87 + self.settings["interpreter"],
88 + print_traceback=True)
89
90 - if os.path.exists(self.settings['chroot_path'] + '/' + self.settings['interpreter']):
91 - os.rename(
92 - self.settings['chroot_path'] +
93 - '/' + self.settings['interpreter'],
94 - self.settings['chroot_path'] + '/' + self.settings['interpreter'] + '.catalyst')
95 + log.notice('Copying binary interpreter %s into chroot',
96 + self.settings['interpreter'])
97 +
98 + if os.path.exists(self.settings['chroot_path'] + '/' + self.settings['interpreter']):
99 + os.rename(
100 + self.settings['chroot_path'] +
101 + '/' + self.settings['interpreter'],
102 + self.settings['chroot_path'] + '/' + self.settings['interpreter'] + '.catalyst')
103
104 - shutil.copy(self.settings['interpreter'],
105 - self.settings['chroot_path'] + '/' + self.settings['interpreter'])
106 + shutil.copy(self.settings['interpreter'],
107 + self.settings['chroot_path'] + '/' + self.settings['interpreter'])
108
109 - # Copy over the envscript, if applicable
110 - if "envscript" in self.settings:
111 - if not os.path.exists(self.settings["envscript"]):
112 - raise CatalystError(
113 - "Can't find envscript " + self.settings["envscript"],
114 - print_traceback=True)
115 -
116 - log.warning(
117 - 'env variables in catalystrc may cause catastrophic failure.\n'
118 - 'If your build fails look here first as the possible problem.')
119 -
120 - shutil.copy(self.settings['envscript'],
121 - self.settings['chroot_path'] + '/tmp/envscript')
122 -
123 - # Copy over /etc/hosts from the host in case there are any
124 - # specialties in there
125 - hosts_file = self.settings['chroot_path'] + '/etc/hosts'
126 - if os.path.exists(hosts_file):
127 - os.rename(hosts_file, hosts_file + '.catalyst')
128 - shutil.copy('/etc/hosts', hosts_file)
129 - # write out the make.conf
130 - try:
131 - self.write_make_conf(setup=True)
132 - except OSError as e:
133 - raise CatalystError('Could not write %s: %s' % (
134 - normpath(self.settings["chroot_path"] +
135 - self.settings["make_conf"]), e))
136 - self.resume.enable("chroot_setup")
137 + # Copy over the envscript, if applicable
138 + if "envscript" in self.settings:
139 + if not os.path.exists(self.settings["envscript"]):
140 + raise CatalystError(
141 + "Can't find envscript " + self.settings["envscript"],
142 + print_traceback=True)
143 +
144 + log.warning(
145 + 'env variables in catalystrc may cause catastrophic failure.\n'
146 + 'If your build fails look here first as the possible problem.')
147 +
148 + shutil.copy(self.settings['envscript'],
149 + self.settings['chroot_path'] + '/tmp/envscript')
150 +
151 + # Copy over /etc/hosts from the host in case there are any
152 + # specialties in there
153 + hosts_file = self.settings['chroot_path'] + '/etc/hosts'
154 + if os.path.exists(hosts_file):
155 + os.rename(hosts_file, hosts_file + '.catalyst')
156 + shutil.copy('/etc/hosts', hosts_file)
157 + # write out the make.conf
158 + try:
159 + self.write_make_conf(setup=True)
160 + except OSError as e:
161 + raise CatalystError('Could not write %s: %s' % (
162 + normpath(self.settings["chroot_path"] +
163 + self.settings["make_conf"]), e))
164 + self.resume.enable("chroot_setup")
165
166 def write_make_conf(self, setup=True):
167 # Modify and write out make.conf (for the chroot)
168 @@ -1097,22 +1100,24 @@ class StageBase(TargetBase, ClearBase, GenBase):
169 if "autoresume" in self.settings["options"] \
170 and self.resume.is_enabled("fsscript"):
171 log.notice('Resume point detected, skipping fsscript operation...')
172 - else:
173 - if "fsscript" in self.settings:
174 - if os.path.exists(self.settings["controller_file"]):
175 - cmd([self.settings['controller_file'], 'fsscript'],
176 - env=self.env)
177 - self.resume.enable("fsscript")
178 + return
179 +
180 + if "fsscript" in self.settings:
181 + if os.path.exists(self.settings["controller_file"]):
182 + cmd([self.settings['controller_file'], 'fsscript'],
183 + env=self.env)
184 + self.resume.enable("fsscript")
185
186 def rcupdate(self):
187 if "autoresume" in self.settings["options"] \
188 and self.resume.is_enabled("rcupdate"):
189 log.notice('Resume point detected, skipping rcupdate operation...')
190 - else:
191 - if os.path.exists(self.settings["controller_file"]):
192 - cmd([self.settings['controller_file'], 'rc-update'],
193 - env=self.env)
194 - self.resume.enable("rcupdate")
195 + return
196 +
197 + if os.path.exists(self.settings["controller_file"]):
198 + cmd([self.settings['controller_file'], 'rc-update'],
199 + env=self.env)
200 + self.resume.enable("rcupdate")
201
202 def clean(self):
203 if "autoresume" in self.settings["options"] \
204 @@ -1181,58 +1186,61 @@ class StageBase(TargetBase, ClearBase, GenBase):
205 if "autoresume" in self.settings["options"] \
206 and self.resume.is_enabled("empty"):
207 log.notice('Resume point detected, skipping empty operation...')
208 - else:
209 - if self.settings["spec_prefix"] + "/empty" in self.settings:
210 - if isinstance(
211 - self.settings[self.settings['spec_prefix'] + '/empty'],
212 - str):
213 - self.settings[self.settings["spec_prefix"] + "/empty"] = \
214 - self.settings[self.settings["spec_prefix"] +
215 - "/empty"].split()
216 - for x in self.settings[self.settings["spec_prefix"] + "/empty"]:
217 - myemp = self.settings["destpath"] + x
218 - if not os.path.isdir(myemp) or os.path.islink(myemp):
219 - log.warning('not a directory or does not exist, '
220 - 'skipping "empty" operation: %s', x)
221 - continue
222 - log.info('Emptying directory %s', x)
223 - clear_dir(myemp)
224 - self.resume.enable("empty")
225 + return
226 +
227 + if self.settings["spec_prefix"] + "/empty" in self.settings:
228 + if isinstance(
229 + self.settings[self.settings['spec_prefix'] + '/empty'],
230 + str):
231 + self.settings[self.settings["spec_prefix"] + "/empty"] = \
232 + self.settings[self.settings["spec_prefix"] +
233 + "/empty"].split()
234 + for x in self.settings[self.settings["spec_prefix"] + "/empty"]:
235 + myemp = self.settings["destpath"] + x
236 + if not os.path.isdir(myemp) or os.path.islink(myemp):
237 + log.warning('not a directory or does not exist, '
238 + 'skipping "empty" operation: %s', x)
239 + continue
240 + log.info('Emptying directory %s', x)
241 + clear_dir(myemp)
242 + self.resume.enable("empty")
243
244 def remove(self):
245 if "autoresume" in self.settings["options"] \
246 and self.resume.is_enabled("remove"):
247 log.notice('Resume point detected, skipping remove operation...')
248 - else:
249 - if self.settings["spec_prefix"] + "/rm" in self.settings:
250 - for x in self.settings[self.settings["spec_prefix"] + "/rm"]:
251 - # We're going to shell out for all these cleaning
252 - # operations, so we get easy glob handling.
253 - log.notice('%s: removing %s', self.settings["spec_prefix"], x)
254 - clear_path(self.settings["destpath"] + x)
255 - try:
256 - if os.path.exists(self.settings["controller_file"]):
257 - cmd([self.settings['controller_file'], 'clean'],
258 - env=self.env)
259 - self.resume.enable("remove")
260 - except:
261 - self.unbind()
262 - raise
263 + return
264
265 - def preclean(self):
266 - if "autoresume" in self.settings["options"] \
267 - and self.resume.is_enabled("preclean"):
268 - log.notice('Resume point detected, skipping preclean operation...')
269 - else:
270 + if self.settings["spec_prefix"] + "/rm" in self.settings:
271 + for x in self.settings[self.settings["spec_prefix"] + "/rm"]:
272 + # We're going to shell out for all these cleaning
273 + # operations, so we get easy glob handling.
274 + log.notice('%s: removing %s', self.settings["spec_prefix"], x)
275 + clear_path(self.settings["destpath"] + x)
276 try:
277 if os.path.exists(self.settings["controller_file"]):
278 - cmd([self.settings['controller_file'], 'preclean'],
279 + cmd([self.settings['controller_file'], 'clean'],
280 env=self.env)
281 - self.resume.enable("preclean")
282 -
283 + self.resume.enable("remove")
284 except:
285 self.unbind()
286 - raise CatalystError("Build failed, could not execute preclean")
287 + raise
288 +
289 + def preclean(self):
290 + if "autoresume" in self.settings["options"] \
291 + and self.resume.is_enabled("preclean"):
292 + log.notice('Resume point detected, skipping preclean operation...')
293 + return
294 +
295 + try:
296 + if os.path.exists(self.settings["controller_file"]):
297 + cmd([self.settings['controller_file'], 'preclean'],
298 + env=self.env)
299 + self.resume.enable("preclean")
300 +
301 + except:
302 + self.unbind()
303 + raise CatalystError("Build failed, could not execute preclean")
304
305 def capture(self):
306 # initialize it here so it doesn't use
307 @@ -1245,56 +1253,58 @@ class StageBase(TargetBase, ClearBase, GenBase):
308 if "autoresume" in self.settings["options"] \
309 and self.resume.is_enabled("capture"):
310 log.notice('Resume point detected, skipping capture operation...')
311 - else:
312 - log.notice('Capture target in a tarball')
313 - # Remove filename from path
314 - mypath = os.path.dirname(self.settings["target_path"].rstrip('/'))
315 -
316 - # Now make sure path exists
317 - ensure_dirs(mypath)
318 -
319 - pack_info = self.compressor.create_infodict(
320 - source=".",
321 - basedir=self.settings["stage_path"],
322 - filename=self.settings["target_path"].rstrip('/'),
323 - mode=self.settings["compression_mode"],
324 - auto_extension=True,
325 - arch=self.settings["compressor_arch"],
326 - other_options=self.settings["compressor_options"],
327 - )
328 - target_filename = ".".join([self.settings["target_path"].rstrip('/'),
329 - self.compressor.extension(pack_info['mode'])])
330 + return
331
332 - log.notice('Creating stage tarball... mode: %s',
333 - self.settings['compression_mode'])
334 + log.notice('Capture target in a tarball')
335 + # Remove filename from path
336 + mypath = os.path.dirname(self.settings["target_path"].rstrip('/'))
337
338 - if self.compressor.compress(pack_info):
339 - self.gen_contents_file(target_filename)
340 - self.gen_digest_file(target_filename)
341 - self.resume.enable("capture")
342 - else:
343 - log.warning("Couldn't create stage tarball: %s",
344 - target_filename)
345 + # Now make sure path exists
346 + ensure_dirs(mypath)
347 +
348 + pack_info = self.compressor.create_infodict(
349 + source=".",
350 + basedir=self.settings["stage_path"],
351 + filename=self.settings["target_path"].rstrip('/'),
352 + mode=self.settings["compression_mode"],
353 + auto_extension=True,
354 + arch=self.settings["compressor_arch"],
355 + other_options=self.settings["compressor_options"],
356 + )
357 + target_filename = ".".join([self.settings["target_path"].rstrip('/'),
358 + self.compressor.extension(pack_info['mode'])])
359 +
360 + log.notice('Creating stage tarball... mode: %s',
361 + self.settings['compression_mode'])
362 +
363 + if self.compressor.compress(pack_info):
364 + self.gen_contents_file(target_filename)
365 + self.gen_digest_file(target_filename)
366 + self.resume.enable("capture")
367 + else:
368 + log.warning("Couldn't create stage tarball: %s",
369 + target_filename)
370
371 def run_local(self):
372 if "autoresume" in self.settings["options"] \
373 and self.resume.is_enabled("run_local"):
374 log.notice('Resume point detected, skipping run_local operation...')
375 - else:
376 - try:
377 - if os.path.exists(self.settings["controller_file"]):
378 - log.info('run_local() starting controller script...')
379 - cmd([self.settings['controller_file'], 'run'],
380 - env=self.env)
381 - self.resume.enable("run_local")
382 - else:
383 - log.info('run_local() no controller_file found... %s',
384 - self.settings['controller_file'])
385 + return
386
387 - except CatalystError:
388 - self.unbind()
389 - raise CatalystError("Stage build aborting due to error.",
390 - print_traceback=False)
391 + try:
392 + if os.path.exists(self.settings["controller_file"]):
393 + log.info('run_local() starting controller script...')
394 + cmd([self.settings['controller_file'], 'run'],
395 + env=self.env)
396 + self.resume.enable("run_local")
397 + else:
398 + log.info('run_local() no controller_file found... %s',
399 + self.settings['controller_file'])
400 +
401 + except CatalystError:
402 + self.unbind()
403 + raise CatalystError("Stage build aborting due to error.",
404 + print_traceback=False)
405
406 def setup_environment(self):
407 """
408 @@ -1390,63 +1400,67 @@ class StageBase(TargetBase, ClearBase, GenBase):
409 if "autoresume" in self.settings["options"] \
410 and self.resume.is_enabled("unmerge"):
411 log.notice('Resume point detected, skipping unmerge operation...')
412 - else:
413 - if self.settings["spec_prefix"] + "/unmerge" in self.settings:
414 - if isinstance(self.settings[self.settings['spec_prefix'] + '/unmerge'], str):
415 - self.settings[self.settings["spec_prefix"] + "/unmerge"] = \
416 - [self.settings[self.settings["spec_prefix"] + "/unmerge"]]
417 + return
418
419 - # Before cleaning, unmerge stuff
420 - try:
421 - cmd([self.settings['controller_file'], 'unmerge'] +
422 - self.settings[self.settings['spec_prefix'] + '/unmerge'],
423 - env=self.env)
424 - log.info('unmerge shell script')
425 - except CatalystError:
426 - self.unbind()
427 - raise
428 - self.resume.enable("unmerge")
429 + if self.settings["spec_prefix"] + "/unmerge" in self.settings:
430 + if isinstance(self.settings[self.settings['spec_prefix'] + '/unmerge'], str):
431 + self.settings[self.settings["spec_prefix"] + "/unmerge"] = \
432 + [self.settings[self.settings["spec_prefix"] + "/unmerge"]]
433 +
434 + # Before cleaning, unmerge stuff
435 + try:
436 + cmd([self.settings['controller_file'], 'unmerge'] +
437 + self.settings[self.settings['spec_prefix'] + '/unmerge'],
438 + env=self.env)
439 + log.info('unmerge shell script')
440 + except CatalystError:
441 + self.unbind()
442 + raise
443 + self.resume.enable("unmerge")
444
445 def target_setup(self):
446 if "autoresume" in self.settings["options"] \
447 and self.resume.is_enabled("target_setup"):
448 log.notice(
449 'Resume point detected, skipping target_setup operation...')
450 - else:
451 - log.notice('Setting up filesystems per filesystem type')
452 - cmd([self.settings['controller_file'], 'target_image_setup',
453 - self.settings['target_path']], env=self.env)
454 - self.resume.enable("target_setup")
455 + return
456 +
457 + log.notice('Setting up filesystems per filesystem type')
458 + cmd([self.settings['controller_file'], 'target_image_setup',
459 + self.settings['target_path']], env=self.env)
460 + self.resume.enable("target_setup")
461
462 def setup_overlay(self):
463 if "autoresume" in self.settings["options"] \
464 and self.resume.is_enabled("setup_overlay"):
465 log.notice(
466 'Resume point detected, skipping setup_overlay operation...')
467 - else:
468 - if self.settings["spec_prefix"] + "/overlay" in self.settings:
469 - for x in self.settings[self.settings["spec_prefix"] + "/overlay"]:
470 - if os.path.exists(x):
471 - cmd(['rsync', '-a', x + '/', self.settings['target_path']],
472 - env=self.env)
473 - self.resume.enable("setup_overlay")
474 + return
475 +
476 + if self.settings["spec_prefix"] + "/overlay" in self.settings:
477 + for x in self.settings[self.settings["spec_prefix"] + "/overlay"]:
478 + if os.path.exists(x):
479 + cmd(['rsync', '-a', x + '/', self.settings['target_path']],
480 + env=self.env)
481 + self.resume.enable("setup_overlay")
482
483 def create_iso(self):
484 if "autoresume" in self.settings["options"] \
485 and self.resume.is_enabled("create_iso"):
486 log.notice(
487 'Resume point detected, skipping create_iso operation...')
488 + return
489 +
490 + # Create the ISO
491 + if "iso" in self.settings:
492 + cmd([self.settings['controller_file'], 'iso', self.settings['iso']],
493 + env=self.env)
494 + self.gen_contents_file(self.settings["iso"])
495 + self.gen_digest_file(self.settings["iso"])
496 + self.resume.enable("create_iso")
497 else:
498 - # Create the ISO
499 - if "iso" in self.settings:
500 - cmd([self.settings['controller_file'], 'iso', self.settings['iso']],
501 - env=self.env)
502 - self.gen_contents_file(self.settings["iso"])
503 - self.gen_digest_file(self.settings["iso"])
504 - self.resume.enable("create_iso")
505 - else:
506 - log.warning('livecd/iso was not defined. '
507 - 'An ISO Image will not be created.')
508 + log.warning('livecd/iso was not defined. '
509 + 'An ISO Image will not be created.')
510
511 def build_packages(self):
512 build_packages_resume = pjoin(self.settings["autoresume_path"],
513 @@ -1455,29 +1469,30 @@ class StageBase(TargetBase, ClearBase, GenBase):
514 and self.resume.is_enabled("build_packages"):
515 log.notice(
516 'Resume point detected, skipping build_packages operation...')
517 - else:
518 - if self.settings["spec_prefix"] + "/packages" in self.settings:
519 - target_pkgs = self.settings["spec_prefix"] + '/packages'
520 - if "autoresume" in self.settings["options"] \
521 - and self.resume.is_enabled("build_packages"):
522 - log.notice('Resume point detected, skipping build_packages '
523 - 'operation...')
524 + return
525 +
526 + if self.settings["spec_prefix"] + "/packages" in self.settings:
527 + target_pkgs = self.settings["spec_prefix"] + '/packages'
528 + if "autoresume" in self.settings["options"] \
529 + and self.resume.is_enabled("build_packages"):
530 + log.notice('Resume point detected, skipping build_packages '
531 + 'operation...')
532 + else:
533 + command = [self.settings['controller_file'],
534 + 'build_packages']
535 + if isinstance(self.settings[target_pkgs], str):
536 + command.append(self.settings[target_pkgs])
537 else:
538 - command = [self.settings['controller_file'],
539 - 'build_packages']
540 - if isinstance(self.settings[target_pkgs], str):
541 - command.append(self.settings[target_pkgs])
542 - else:
543 - command.extend(self.settings[target_pkgs])
544 - try:
545 - cmd(command, env=self.env)
546 - fileutils.touch(build_packages_resume)
547 - self.resume.enable("build_packages")
548 - except CatalystError:
549 - self.unbind()
550 - raise CatalystError(
551 - self.settings["spec_prefix"] +
552 - "build aborting due to error.")
553 + command.extend(self.settings[target_pkgs])
554 + try:
555 + cmd(command, env=self.env)
556 + fileutils.touch(build_packages_resume)
557 + self.resume.enable("build_packages")
558 + except CatalystError:
559 + self.unbind()
560 + raise CatalystError(
561 + self.settings["spec_prefix"] +
562 + "build aborting due to error.")
563
564 def build_kernel(self):
565 '''Build all configured kernels'''
566 @@ -1485,23 +1500,23 @@ class StageBase(TargetBase, ClearBase, GenBase):
567 and self.resume.is_enabled("build_kernel"):
568 log.notice(
569 'Resume point detected, skipping build_kernel operation...')
570 - else:
571 - if "boot/kernel" in self.settings:
572 - try:
573 - mynames = self.settings["boot/kernel"]
574 - if isinstance(mynames, str):
575 - mynames = [mynames]
576 - # Execute the script that sets up the kernel build environment
577 - cmd([self.settings['controller_file'], 'pre-kmerge'],
578 - env=self.env)
579 - for kname in mynames:
580 - self._build_kernel(kname=kname)
581 - self.resume.enable("build_kernel")
582 - except CatalystError:
583 - self.unbind()
584 - raise CatalystError(
585 - "build aborting due to kernel build error.",
586 - print_traceback=True)
587 + return
588 +
589 + if "boot/kernel" in self.settings:
590 + try:
591 + mynames = self.settings["boot/kernel"]
592 + if isinstance(mynames, str):
593 + mynames = [mynames]
594 + # Execute the script that sets up the kernel build environment
595 + cmd([self.settings['controller_file'], 'pre-kmerge'], env=self.env)
596 + for kname in mynames:
597 + self._build_kernel(kname=kname)
598 + self.resume.enable("build_kernel")
599 + except CatalystError:
600 + self.unbind()
601 + raise CatalystError(
602 + "build aborting due to kernel build error.",
603 + print_traceback=True)
604
605 def _build_kernel(self, kname):
606 "Build a single configured kernel by name"
607 @@ -1579,31 +1594,33 @@ class StageBase(TargetBase, ClearBase, GenBase):
608 and self.resume.is_enabled("bootloader"):
609 log.notice(
610 'Resume point detected, skipping bootloader operation...')
611 - else:
612 - try:
613 - cmd([self.settings['controller_file'], 'bootloader',
614 - self.settings['target_path'].rstrip('/')],
615 - env=self.env)
616 - self.resume.enable("bootloader")
617 - except CatalystError:
618 - self.unbind()
619 - raise CatalystError("Script aborting due to error.")
620 + return
621 +
622 + try:
623 + cmd([self.settings['controller_file'], 'bootloader',
624 + self.settings['target_path'].rstrip('/')],
625 + env=self.env)
626 + self.resume.enable("bootloader")
627 + except CatalystError:
628 + self.unbind()
629 + raise CatalystError("Script aborting due to error.")
630
631 def livecd_update(self):
632 if "autoresume" in self.settings["options"] \
633 and self.resume.is_enabled("livecd_update"):
634 log.notice(
635 'Resume point detected, skipping build_packages operation...')
636 - else:
637 - try:
638 - cmd([self.settings['controller_file'], 'livecd-update'],
639 - env=self.env)
640 - self.resume.enable("livecd_update")
641 + return
642
643 - except CatalystError:
644 - self.unbind()
645 - raise CatalystError(
646 - "build aborting due to livecd_update error.")
647 + try:
648 + cmd([self.settings['controller_file'], 'livecd-update'],
649 + env=self.env)
650 + self.resume.enable("livecd_update")
651 +
652 + except CatalystError:
653 + self.unbind()
654 + raise CatalystError(
655 + "build aborting due to livecd_update error.")
656
657 @staticmethod
658 def _debug_pause_():
659 --
660 2.26.2

Replies

Subject Author
[gentoo-catalyst] [PATCH 02/37] catalyst: Drop outdated comment Matt Turner <mattst88@g.o>
[gentoo-catalyst] [PATCH 03/37] catalyst: Fix obvious logic error Matt Turner <mattst88@g.o>
[gentoo-catalyst] [PATCH 04/37] catalyst: Add and use sanitize_name() function Matt Turner <mattst88@g.o>
[gentoo-catalyst] [PATCH 05/37] catalyst: Sanitize variable kernel name before giving it to bash Matt Turner <mattst88@g.o>
[gentoo-catalyst] [PATCH 06/37] targets: Fix filtered_kname Matt Turner <mattst88@g.o>
[gentoo-catalyst] [PATCH 07/37] targets: Consolidate evals using filtered_kname Matt Turner <mattst88@g.o>
[gentoo-catalyst] [PATCH 08/37] targets: Remove filtered_kname Matt Turner <mattst88@g.o>
[gentoo-catalyst] [PATCH 09/37] targets: Remove useless sleep 0 Matt Turner <mattst88@g.o>
[gentoo-catalyst] [PATCH 10/37] targets: Remove trivial build_kernel() function Matt Turner <mattst88@g.o>
[gentoo-catalyst] [PATCH 11/37] targets: Remove some disabled debugging messages Matt Turner <mattst88@g.o>
[gentoo-catalyst] [PATCH 12/37] targets: Remove some unnecessary exports Matt Turner <mattst88@g.o>
[gentoo-catalyst] [PATCH 13/37] targets: Remove more clst_ prefixes Matt Turner <mattst88@g.o>
[gentoo-catalyst] [PATCH 14/37] targets: Remove some comments whose meanings have been lost Matt Turner <mattst88@g.o>
[gentoo-catalyst] [PATCH 15/37] targets: Use pkgcache for kernel sources Matt Turner <mattst88@g.o>
[gentoo-catalyst] [PATCH 16/37] targets: Remove a bunch of stray newlines Matt Turner <mattst88@g.o>
[gentoo-catalyst] [PATCH 17/37] targets: Delete some more dead code Matt Turner <mattst88@g.o>
[gentoo-catalyst] [PATCH 18/37] targets: Remove bizarre make_destpath() call Matt Turner <mattst88@g.o>
[gentoo-catalyst] [PATCH 19/37] targets: Remove unnecessary unset USE Matt Turner <mattst88@g.o>
[gentoo-catalyst] [PATCH 20/37] targets: Remove wrong make.conf munging Matt Turner <mattst88@g.o>
[gentoo-catalyst] [PATCH 21/37] targets: Use USE=symlink when emerging kernel sources Matt Turner <mattst88@g.o>
[gentoo-catalyst] [PATCH 22/37] targets: Emerge kernel sources with --update Matt Turner <mattst88@g.o>
[gentoo-catalyst] [PATCH 23/37] targets: Default to sys-kernel/gentoo-sources directly Matt Turner <mattst88@g.o>
[gentoo-catalyst] [PATCH 24/37] targets: Rewrite hppa pre-kmerge check Matt Turner <mattst88@g.o>
[gentoo-catalyst] [PATCH 25/37] targets: Use full 'sys-kernel/genkernel' package name Matt Turner <mattst88@g.o>
[gentoo-catalyst] [PATCH 26/37] targets: Explicitly set RUN_DEFAULT_FUNCS="yes" Matt Turner <mattst88@g.o>
[gentoo-catalyst] [PATCH 27/37] targets: Inline run_default_funcs() function Matt Turner <mattst88@g.o>
[gentoo-catalyst] [PATCH 28/37] targets: Move create_handbook_icon() to its use Matt Turner <mattst88@g.o>
[gentoo-catalyst] [PATCH 29/37] targets: Drop warning about no cdtar Matt Turner <mattst88@g.o>
[gentoo-catalyst] [PATCH 30/37] targets: Remove post-kmerge Matt Turner <mattst88@g.o>
[gentoo-catalyst] [PATCH 31/37] targets: Remove unnecessary unset PACKAGES Matt Turner <mattst88@g.o>
[gentoo-catalyst] [PATCH 32/37] targets: Delete never-used packages.txt code Matt Turner <mattst88@g.o>
[gentoo-catalyst] [PATCH 33/37] targets: Remove kernelpkgs.txt generation Matt Turner <mattst88@g.o>
[gentoo-catalyst] [PATCH 34/37] targets: Merge setup_gk_args() and genkernel_compile() Matt Turner <mattst88@g.o>
[gentoo-catalyst] [PATCH 35/37] targets: Reimplement kerncache support Matt Turner <mattst88@g.o>
[gentoo-catalyst] [PATCH 36/37] targets: Remove unnecessary CONFIG_PROTECT assignment Matt Turner <mattst88@g.o>
[gentoo-catalyst] [PATCH 37/37] targets: Use double-brackets in kmerge.sh Matt Turner <mattst88@g.o>