{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python: Remote Attach",
            "type": "python",
            "request": "attach",
            "justMyCode": false,
            "connect": {
                "host": "0.0.0.0",
                "port": 5678
            },
            "pathMappings": [
                {
                    "localRoot": "${workspaceFolder}",
                    "remoteRoot": "${workspaceFolder}"
                }
            ]
        },
        {
            "name": "(gdb) GATEWAY - Attach to beerocks_controller",
            "type": "cppdbg",
            "request": "attach",
            "program": "${workspaceFolder}/build/install/bin/beerocks_controller",
            "processId": "${command:pickRemoteProcess}",
            "pipeTransport": {
                "pipeCwd": "${workspaceRoot}",
                "pipeProgram": "docker",
                "pipeArgs": [
                    "exec",
                    "-i",
                    "gateway-${env:USER}",
                    "sh",
                    "-c"
                ],
                "debuggerPath": "/usr/bin/gdb"
            },
            "presentation": {
                "hidden": false,
                "group": "Gateway",
                "order": 1
            }
        },
        {
            "name": "(gdb) GATEWAY - Attach to beerocks_agent",
            "type": "cppdbg",
            "request": "attach",
            "program": "${workspaceFolder}/build/install/bin/beerocks_agent",
            "processId": "${command:pickRemoteProcess}",
            "pipeTransport": {
                "pipeCwd": "${workspaceRoot}",
                "pipeProgram": "docker",
                "pipeArgs": [
                    "exec",
                    "-i",
                    "gateway-${env:USER}",
                    "sh",
                    "-c"
                ],
                "debuggerPath": "/usr/bin/gdb"
            },
            "presentation": {
                "hidden": false,
                "group": "Gateway",
                "order": 2
            }
        },
        {
            "name": "(gdb) GATEWAY - Attach to beerocks_fronthaul",
            "type": "cppdbg",
            "request": "attach",
            "program": "${workspaceFolder}/build/install/bin/beerocks_fronthaul",
            "processId": "${command:pickRemoteProcess}",
            "pipeTransport": {
                "pipeCwd": "${workspaceRoot}",
                "pipeProgram": "docker",
                "pipeArgs": [
                    "exec",
                    "-i",
                    "gateway-${env:USER}",
                    "sh",
                    "-c"
                ],
                "debuggerPath": "/usr/bin/gdb"
            },
            "presentation": {
                "hidden": false,
                "group": "Gateway",
                "order": 3
            }
        },
        {
            "name": "(gdb) GATEWAY - Attach to beerocks_cli",
            "type": "cppdbg",
            "request": "attach",
            "program": "${workspaceFolder}/build/install/bin/beerocks_cli",
            "processId": "${command:pickRemoteProcess}",
            "pipeTransport": {
                "pipeCwd": "${workspaceRoot}",
                "pipeProgram": "docker",
                "pipeArgs": [
                    "exec",
                    "-i",
                    "gateway-${env:USER}",
                    "sh",
                    "-c"
                ],
                "debuggerPath": "/usr/bin/gdb"
            },
            "presentation": {
                "hidden": false,
                "group": "Gateway",
                "order": 4
            }
        },
        {
            "name": "(gdb) REPEATER #1 - Attach to beerocks_agent",
            "type": "cppdbg",
            "request": "attach",
            "program": "${workspaceFolder}/build/install/bin/beerocks_agent",
            "processId": "${command:pickRemoteProcess}",
            "pipeTransport": {
                "pipeCwd": "${workspaceRoot}",
                "pipeProgram": "docker",
                "pipeArgs": [
                    "exec",
                    "-i",
                    "repeater1-${env:USER}",
                    "sh",
                    "-c"
                ],
                "debuggerPath": "/usr/bin/gdb"
            },
            "presentation": {
                "hidden": false,
                "group": "Repeater 1",
                "order": 1
            }
        },
        {
            "name": "(gdb) REPEATER #1 - Attach to beerocks_fronthaul",
            "type": "cppdbg",
            "request": "attach",
            "program": "${workspaceFolder}/build/install/bin/beerocks_fronthaul",
            "processId": "${command:pickRemoteProcess}",
            "pipeTransport": {
                "pipeCwd": "${workspaceRoot}",
                "pipeProgram": "docker",
                "pipeArgs": [
                    "exec",
                    "-i",
                    "repeater1-${env:USER}",
                    "sh",
                    "-c"
                ],
                "debuggerPath": "/usr/bin/gdb"
            },
            "presentation": {
                "hidden": false,
                "group": "Repeater 1",
                "order": 2
            }
        },
        {
            "name": "(gdb) REPEATER #2 - Attach to beerocks_agent",
            "type": "cppdbg",
            "request": "attach",
            "program": "${workspaceFolder}/build/install/bin/beerocks_agent",
            "processId": "${command:pickRemoteProcess}",
            "pipeTransport": {
                "pipeCwd": "${workspaceRoot}",
                "pipeProgram": "docker",
                "pipeArgs": [
                    "exec",
                    "-i",
                    "repeater2-${env:USER}",
                    "sh",
                    "-c"
                ],
                "debuggerPath": "/usr/bin/gdb"
            },
            "presentation": {
                "hidden": false,
                "group": "Repeater 2",
                "order": 1
            }
        },
        {
            "name": "(gdb) REPEATER #2 - Attach to beerocks_fronthaul",
            "type": "cppdbg",
            "request": "attach",
            "program": "${workspaceFolder}/build/install/bin/beerocks_fronthaul",
            "processId": "${command:pickRemoteProcess}",
            "pipeTransport": {
                "pipeCwd": "${workspaceRoot}",
                "pipeProgram": "docker",
                "pipeArgs": [
                    "exec",
                    "-i",
                    "repeater2-${env:USER}",
                    "sh",
                    "-c"
                ],
                "debuggerPath": "/usr/bin/gdb"
            },
            "presentation": {
                "hidden": false,
                "group": "Repeater 2",
                "order": 2
            }
        },
        {
            "name": "Test Flows",
            "type": "python",
            "request": "launch",
            "program": "${workspaceFolder}/tests/test_flows.py",
            "args": [
                ""
            ],
            "console": "integratedTerminal"
        }
    ]
}
