 a91d319839
			
		
	
	
		a91d319839
		
			
		
	
	
	
	
		
			
			* scripts: moved ufbt code * ufbt: fixed tool path * ufbt: fixed linter/formatter target descriptions * scripts: ufbt: cleanup * fbt: moved fap launch target to tools; ufbt fixes * fbt: fixed missing headers from SDK * ufbt: removed debug output * ufbt: moved project template to main codebase * ufbt: fixed vscode_dist * ufbt: path naming changes * fbt: error message for older ufbt versions * ufbt: docs fixes * ufbt: fixed build dir location * fbt: fixes for extapps objcopy * fbt: extapps: removed extra debug output; fixed formatting * ufbt: handle launch target for multiple known apps * ufbt: dropping wrapper; linter fixes * ufbt: fixed boostrap path * ufbt: renamed entrypoint * ufbt: updated vscode config * ufbt: moved sconsign db location * ufbt: fixed sconsign path * fbt: SDK builders rework * fbt: reworked sdk packaging * ufbt: additional checks and state processing * ufbt: fixed sdk state file location * dist: not packaging pycache * dump commit json content * Github: more workflow debug prints * Github: fix incorrect commit meta extraction in get_env.py * ufbt, fbt: changed SConsEnvironmentError->StopError * fbtenv: no longer needs SCRIPT_PATH pre-set * ufbt: fixed sdk state check * scripts: exception fixes for storage.py * scripts: fbtenv: added FBT_TOOLCHAIN_PATH for on Windows for compat * ufbt: app template: creating .gitkeep for images folder * ufbt: app template: fixed .gitkeep creation * docs: formatting fixes for AppManifests; added link to ufbt * fbt: added link to PyPI for old ufbt versions * sdk: fixed dir component paths Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
		
			
				
	
	
		
			37 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			37 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| from SCons.Script import GetBuildFailures
 | |
| import SCons.Errors
 | |
| 
 | |
| import atexit
 | |
| from ansi.color import fg, fx
 | |
| 
 | |
| 
 | |
| def bf_to_str(bf):
 | |
|     """Convert an element of GetBuildFailures() to a string
 | |
|     in a useful way."""
 | |
| 
 | |
|     if bf is None:  # unknown targets product None in list
 | |
|         return "(unknown tgt)"
 | |
|     elif isinstance(bf, SCons.Errors.StopError):
 | |
|         return fg.yellow(str(bf))
 | |
|     elif bf.node:
 | |
|         return fg.yellow(str(bf.node)) + ": " + bf.errstr
 | |
|     elif bf.filename:
 | |
|         return fg.yellow(bf.filename) + ": " + bf.errstr
 | |
|     return fg.yellow("unknown failure: ") + bf.errstr
 | |
| 
 | |
| 
 | |
| def display_build_status():
 | |
|     """Display the build status.  Called by atexit.
 | |
|     Here you could do all kinds of complicated things."""
 | |
|     bf = GetBuildFailures()
 | |
|     if bf:
 | |
|         # bf is normally a list of build failures; if an element is None,
 | |
|         # it's because of a target that scons doesn't know anything about.
 | |
|         failures_message = "\n".join([bf_to_str(x) for x in bf if x is not None])
 | |
|         print()
 | |
|         print(fg.brightred(fx.bold("*" * 10 + " FBT ERRORS " + "*" * 10)))
 | |
|         print(failures_message)
 | |
| 
 | |
| 
 | |
| atexit.register(display_build_status)
 |