Skip to content

Commit b92d660

Browse files
committed
add debug mode for start and stop
1 parent f2cad41 commit b92d660

File tree

6 files changed

+36
-0
lines changed

6 files changed

+36
-0
lines changed

devservices/commands/start.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
from __future__ import annotations
22

3+
import logging
34
from argparse import _SubParsersAction
45
from argparse import ArgumentParser
56
from argparse import Namespace
67

8+
from devservices.constants import LOGGER_NAME
79
from devservices.exceptions import DependencyError
810
from devservices.exceptions import DockerComposeError
911
from devservices.utils.console import Console
@@ -18,6 +20,12 @@ def add_parser(subparsers: _SubParsersAction[ArgumentParser]) -> None:
1820
parser.add_argument(
1921
"service_name", help="Name of the service to start", nargs="?", default=None
2022
)
23+
parser.add_argument(
24+
"--debug",
25+
help="Enable debug mode",
26+
action="store_true",
27+
default=False,
28+
)
2129
parser.set_defaults(func=start)
2230

2331

@@ -36,6 +44,10 @@ def start(args: Namespace) -> None:
3644
mode_to_start = "default"
3745
mode_dependencies = modes[mode_to_start]
3846

47+
if args.debug:
48+
logger = logging.getLogger(LOGGER_NAME)
49+
logger.setLevel(logging.DEBUG)
50+
3951
with Status(
4052
lambda: console.warning(f"Starting {service.name}"),
4153
lambda: console.success(f"{service.name} started"),

devservices/commands/stop.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
from __future__ import annotations
22

3+
import logging
34
from argparse import _SubParsersAction
45
from argparse import ArgumentParser
56
from argparse import Namespace
67

8+
from devservices.constants import LOGGER_NAME
79
from devservices.exceptions import DependencyError
810
from devservices.exceptions import DockerComposeError
911
from devservices.utils.console import Console
@@ -18,6 +20,12 @@ def add_parser(subparsers: _SubParsersAction[ArgumentParser]) -> None:
1820
parser.add_argument(
1921
"service_name", help="Name of the service to stop", nargs="?", default=None
2022
)
23+
parser.add_argument(
24+
"--debug",
25+
help="Enable debug mode",
26+
action="store_true",
27+
default=False,
28+
)
2129
parser.set_defaults(func=stop)
2230

2331

@@ -35,6 +43,11 @@ def stop(args: Namespace) -> None:
3543
# TODO: allow custom modes to be used
3644
mode_to_stop = "default"
3745
mode_dependencies = modes[mode_to_stop]
46+
47+
if args.debug:
48+
logger = logging.getLogger(LOGGER_NAME)
49+
logger.setLevel(logging.DEBUG)
50+
3851
state = State()
3952
started_services = state.get_started_services()
4053
if service.name not in started_services:

devservices/constants.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,3 +24,4 @@
2424
DEVSERVICES_DOWNLOAD_URL = "https://github.com/getsentry/devservices/releases/download"
2525
BINARY_PERMISSIONS = 0o755
2626
MAX_LOG_LINES = "100"
27+
LOGGER_NAME = "devservices"

devservices/main.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import argparse
44
import atexit
5+
import logging
56
import os
67
from importlib import metadata
78

@@ -27,6 +28,7 @@
2728
)
2829

2930
disable_sentry = os.environ.get("DISABLE_SENTRY", default=False)
31+
logging.basicConfig(level=logging.INFO)
3032

3133
if not disable_sentry:
3234
sentry_sdk.init(

devservices/utils/dependencies.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
from __future__ import annotations
22

3+
import logging
34
import os
45
import shutil
56
import subprocess
@@ -18,6 +19,7 @@
1819
from devservices.constants import DEPENDENCY_GIT_PARTIAL_CLONE_CONFIG_OPTIONS
1920
from devservices.constants import DEVSERVICES_DEPENDENCIES_CACHE_DIR
2021
from devservices.constants import DEVSERVICES_DIR_NAME
22+
from devservices.constants import LOGGER_NAME
2123
from devservices.exceptions import ConfigNotFoundError
2224
from devservices.exceptions import ConfigParseError
2325
from devservices.exceptions import ConfigValidationError
@@ -436,4 +438,6 @@ def _has_remote_config(remote_config: RemoteConfig | None) -> TypeGuard[RemoteCo
436438
def _run_command(
437439
cmd: list[str], cwd: str, stdout: int | TextIO | None = subprocess.DEVNULL
438440
) -> None:
441+
logger = logging.getLogger(LOGGER_NAME)
442+
logger.debug(f"Running command: {' '.join(cmd)}")
439443
subprocess.run(cmd, cwd=cwd, check=True, stdout=stdout, stderr=subprocess.DEVNULL)

devservices/utils/docker_compose.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
from __future__ import annotations
22

3+
import logging
34
import os
45
import platform
56
import re
@@ -17,6 +18,7 @@
1718
from devservices.constants import DEVSERVICES_DIR_NAME
1819
from devservices.constants import DOCKER_COMPOSE_DOWNLOAD_URL
1920
from devservices.constants import DOCKER_USER_PLUGIN_DIR
21+
from devservices.constants import LOGGER_NAME
2022
from devservices.constants import MINIMUM_DOCKER_COMPOSE_VERSION
2123
from devservices.exceptions import BinaryInstallError
2224
from devservices.exceptions import DockerComposeError
@@ -272,6 +274,8 @@ def run_docker_compose_command(
272274
cmd_outputs = []
273275
for cmd in docker_compose_commands:
274276
try:
277+
logger = logging.getLogger(LOGGER_NAME)
278+
logger.debug(f"Running command: {' '.join(cmd)}")
275279
cmd_outputs.append(
276280
subprocess.run(
277281
cmd, check=True, capture_output=True, text=True, env=current_env

0 commit comments

Comments
 (0)