-
-
Notifications
You must be signed in to change notification settings - Fork 84
/
Copy path_serve.py
35 lines (25 loc) · 803 Bytes
/
_serve.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
from __future__ import annotations
import shlex
from pathlib import Path
import nox
from ._types import SupportedDatabase
DOCKER_COMPOSE_FILE = Path(__file__).parent / 'docker-compose.yml'
def start_database(
database: SupportedDatabase,
*,
version: str | None,
session: nox.Session,
) -> None:
"""Start a docker-compose database service"""
if database == 'sqlite':
raise ValueError('Cannot start a server for SQLite.')
args = shlex.split(f'docker compose -f {DOCKER_COMPOSE_FILE} up -d --remove-orphans')
session.run_always(
*args,
f'{database}{_format_version(version)}',
external=True,
)
def _format_version(version: str | None) -> str:
if version is None:
return ''
return '-' + version.replace('.', '-')