diff --git a/ros2controlcli/ros2controlcli/verb/list_controllers.py b/ros2controlcli/ros2controlcli/verb/list_controllers.py index ca73e7afef..31ce814865 100644 --- a/ros2controlcli/ros2controlcli/verb/list_controllers.py +++ b/ros2controlcli/ros2controlcli/verb/list_controllers.py @@ -13,6 +13,7 @@ # limitations under the License. from controller_manager import list_controllers +from controller_manager.spawner import bcolors from ros2cli.node.direct import add_arguments from ros2cli.node.strategy import NodeStrategy @@ -22,7 +23,15 @@ def print_controller_state(c, args): - print(f"{c.name:20s}[{c.type:20s}] {c.state:10s}") + state_color = "" + if c.state == "active": + state_color = bcolors.OKGREEN + elif c.state == "inactive": + state_color = bcolors.OKCYAN + elif c.state == "unconfigured": + state_color = bcolors.WARNING + + print(f"{c.name:20s}[{c.type:20s}] {state_color}{c.state:10s}{bcolors.ENDC}") if args.claimed_interfaces or args.verbose: print("\tclaimed interfaces:") for claimed_interface in c.claimed_interfaces: