App( appid="cli", apptype=FlipperAppType.STARTUP, entry_point="cli_on_system_start", cdefines=["SRV_CLI"], sources=[ "cli_command_gpio.c", "cli_main_commands.c", "cli_main_shell.c", ], # This STARTUP has to be processed before those that depend on the "cli" record. # "cli" used to be a SERVICE, but it's been converted into a STARTUP in order to # reduce RAM usage. The "block until record has been created" mechanism # unfortunately leads to a deadlock if the STARTUPs are processed sequentially. order=0, ) App( appid="cli_vcp", name="CliVcpSrv", apptype=FlipperAppType.SERVICE, entry_point="cli_vcp_srv", stack_size=1024, order=40, sdk_headers=["cli_vcp.h"], sources=["cli_vcp.c"], ) App( appid="cli_hello_world", apptype=FlipperAppType.PLUGIN, entry_point="cli_hello_world_ep", requires=["cli"], sources=["commands/hello_world.c"], ) App( appid="cli_neofetch", apptype=FlipperAppType.PLUGIN, entry_point="cli_neofetch_ep", requires=["cli"], sources=["commands/neofetch.c"], ) App( appid="cli_subshell_demo", apptype=FlipperAppType.PLUGIN, entry_point="cli_subshell_demo_ep", requires=["cli"], sources=["commands/subshell_demo.c"], )