* test run, moved updated to separate physical runner/flipper/card * simplified units, removed re-flashing, moved format to beginning of run * added reboot requence and mini optimizations * forgot gitadd, added script modifications, workflow changes * fixed linter issues * moved updater to unit bench for speed up * changes to units, flash (not full) on second update, new fbt GDB thread check * changed serial of second device * testing pipelines, added failing unit test * fixed gdb step * fixed gdb step v2 electric boogaloo * fixed gdb step v3, fixed target * reverted while1 in units, tests complete * testing colored output * trying different term setting * debug outputs for terminal * fixed typo in SConstruct and another terminal test * reverted changes, no colored output, for production * fixed log output to readable format * fixed linter Co-authored-by: Konstantin Volkov <k.volkov@flipperdevices.com> Co-authored-by: あく <alleteam@gmail.com>
		
			
				
	
	
		
			59 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			59 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
#!/usr/bin/env python3
 | 
						|
import logging
 | 
						|
import os
 | 
						|
import sys
 | 
						|
import time
 | 
						|
 | 
						|
 | 
						|
def flp_serial_by_name(flp_name):
 | 
						|
    if sys.platform == "darwin":  # MacOS
 | 
						|
        flp_serial = "/dev/cu.usbmodemflip_" + flp_name + "1"
 | 
						|
    elif sys.platform == "linux":  # Linux
 | 
						|
        flp_serial = (
 | 
						|
            "/dev/serial/by-id/usb-Flipper_Devices_Inc._Flipper_"
 | 
						|
            + flp_name
 | 
						|
            + "_flip_"
 | 
						|
            + flp_name
 | 
						|
            + "-if00"
 | 
						|
        )
 | 
						|
 | 
						|
    if os.path.exists(flp_serial):
 | 
						|
        return flp_serial
 | 
						|
    else:
 | 
						|
        if os.path.exists(flp_name):
 | 
						|
            return flp_name
 | 
						|
        else:
 | 
						|
            return ""
 | 
						|
 | 
						|
 | 
						|
UPDATE_TIMEOUT = 60 * 4  # 4 minutes
 | 
						|
 | 
						|
 | 
						|
def main():
 | 
						|
    flipper_name = sys.argv[1]
 | 
						|
    elapsed = 0
 | 
						|
    flipper = flp_serial_by_name(flipper_name)
 | 
						|
    logging.basicConfig(
 | 
						|
        format="%(asctime)s %(levelname)-8s %(message)s",
 | 
						|
        level=logging.INFO,
 | 
						|
        datefmt="%Y-%m-%d %H:%M:%S",
 | 
						|
    )
 | 
						|
    logging.info("Waiting for Flipper to be ready...")
 | 
						|
 | 
						|
    while flipper == "" and elapsed < UPDATE_TIMEOUT:
 | 
						|
        elapsed += 1
 | 
						|
        time.sleep(1)
 | 
						|
        flipper = flp_serial_by_name(flipper_name)
 | 
						|
 | 
						|
    if flipper == "":
 | 
						|
        logging.error("Flipper not found!")
 | 
						|
        sys.exit(1)
 | 
						|
 | 
						|
    logging.info(f"Found Flipper at {flipper}")
 | 
						|
 | 
						|
    sys.exit(0)
 | 
						|
 | 
						|
 | 
						|
if __name__ == "__main__":
 | 
						|
    main()
 |