Skip to content

Commit 47e2ba1

Browse files
committed
log formatting
1 parent 6606529 commit 47e2ba1

File tree

5 files changed

+42
-20
lines changed

5 files changed

+42
-20
lines changed

stackql_deploy/cli.py

Lines changed: 5 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,10 @@
33
import os
44
import sys
55
import subprocess
6+
67
from . import __version__ as deploy_version
78
from .lib.bootstrap import logger
9+
from .lib.utils import print_unicode_box, BorderColor
810
from .cmd.build import StackQLProvisioner
911
from .cmd.test import StackQLTestRunner
1012
from .cmd.teardown import StackQLDeProvisioner
@@ -16,20 +18,6 @@
1618
# utility functions
1719
#
1820

19-
def print_unicode_box(message):
20-
border_color = '\033[93m' # Yellow color
21-
reset_color = '\033[0m'
22-
23-
lines = message.split('\n')
24-
max_length = max(len(line) for line in lines)
25-
top_border = border_color + '┌' + '─' * (max_length + 2) + '┐' + reset_color
26-
bottom_border = border_color + '└' + '─' * (max_length + 2) + '┘' + reset_color
27-
28-
click.echo(top_border)
29-
for line in lines:
30-
click.echo(border_color + '│ ' + line.ljust(max_length) + ' │' + reset_color)
31-
click.echo(bottom_border)
32-
3321
def get_stackql_instance(custom_registry=None, download_dir=None):
3422
"""Initializes StackQL with the given options."""
3523
stackql_kwargs = {}
@@ -190,7 +178,7 @@ def build(ctx, stack_dir, stack_env, log_level, env_file,
190178
)
191179
message = (f"Deploying stack: [{stack_name_display}] "
192180
f"to environment: [{stack_env}]")
193-
print_unicode_box(message)
181+
print_unicode_box(message, BorderColor.YELLOW)
194182

195183
provisioner.run(dry_run, show_queries, on_failure)
196184
click.echo("🎯 dry-run build complete" if dry_run
@@ -222,7 +210,7 @@ def teardown(ctx, stack_dir, stack_env, log_level, env_file,
222210
)
223211
message = (f"Tearing down stack: [{stack_name_display}] "
224212
f"in environment: [{stack_env}]")
225-
print_unicode_box(message)
213+
print_unicode_box(message, BorderColor.YELLOW)
226214

227215
deprovisioner.run(dry_run, show_queries, on_failure)
228216
click.echo(f"🚧 teardown complete (dry run: {dry_run})")
@@ -253,7 +241,7 @@ def test(ctx, stack_dir, stack_env, log_level, env_file,
253241
)
254242
message = (f"Testing stack: [{stack_name_display}] "
255243
f"in environment: [{stack_env}]")
256-
print_unicode_box(message)
244+
print_unicode_box(message, BorderColor.YELLOW)
257245

258246
test_runner.run(dry_run, show_queries, on_failure)
259247
click.echo(f"🔍 tests complete (dry run: {dry_run})")

stackql_deploy/cmd/build.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,9 @@
44
catch_error_and_exit,
55
export_vars,
66
run_ext_script,
7-
get_type
7+
get_type,
8+
print_unicode_box,
9+
BorderColor
810
)
911
from ..lib.config import get_full_context, render_value
1012
from ..lib.templating import get_queries, render_inline_template
@@ -43,6 +45,8 @@ def run(self, dry_run, show_queries, on_failure):
4345

4446
for resource in self.manifest.get('resources', []):
4547

48+
print_unicode_box(f"Processing resource: [{resource['name']}]", BorderColor.BLUE)
49+
4650
type = get_type(resource, self.logger)
4751

4852
self.logger.info(f"processing resource [{resource['name']}], type: {type}")

stackql_deploy/cmd/teardown.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@
22
import datetime
33
from ..lib.utils import (
44
catch_error_and_exit,
5-
get_type
5+
get_type,
6+
print_unicode_box,
7+
BorderColor
68
)
79
from ..lib.config import get_full_context, render_value
810
from ..lib.templating import get_queries, render_inline_template
@@ -70,6 +72,9 @@ def run(self, dry_run, show_queries, on_failure):
7072
self.collect_exports(show_queries, dry_run)
7173

7274
for resource in reversed(self.manifest['resources']):
75+
76+
print_unicode_box(f"Processing resource: [{resource['name']}]", BorderColor.RED)
77+
7378
# process resources in reverse order
7479
type = get_type(resource, self.logger)
7580

stackql_deploy/cmd/test.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@
22
import datetime
33
from ..lib.utils import (
44
catch_error_and_exit,
5-
get_type
5+
get_type,
6+
print_unicode_box,
7+
BorderColor
68
)
79
from ..lib.config import get_full_context
810
from ..lib.templating import get_queries, render_inline_template
@@ -19,6 +21,8 @@ def run(self, dry_run, show_queries, on_failure):
1921

2022
for resource in self.manifest.get('resources', []):
2123

24+
print_unicode_box(f"Processing resource: [{resource['name']}]", BorderColor.BLUE)
25+
2226
type = get_type(resource, self.logger)
2327

2428
if type == 'query':

stackql_deploy/lib/utils.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,31 @@
11
# lib/utils.py
2+
import click
3+
from enum import Enum
24
import time
35
import json
46
import sys
57
import subprocess
68
import re
79

10+
class BorderColor(Enum):
11+
YELLOW = '\033[93m' # Bright yellow
12+
BLUE = '\033[94m' # Bright blue
13+
RED = '\033[91m' # Bright red
14+
15+
def print_unicode_box(message: str, color: BorderColor = BorderColor.YELLOW):
16+
border_color = color.value
17+
reset_color = '\033[0m'
18+
19+
lines = message.split('\n')
20+
max_length = max(len(line) for line in lines)
21+
top_border = border_color + '┌' + '─' * (max_length + 2) + '┐' + reset_color
22+
bottom_border = border_color + '└' + '─' * (max_length + 2) + '┘' + reset_color
23+
24+
click.echo(top_border)
25+
for line in lines:
26+
click.echo(border_color + '│ ' + line.ljust(max_length) + ' │' + reset_color)
27+
click.echo(bottom_border)
28+
829
def catch_error_and_exit(errmsg, logger):
930
logger.error(errmsg)
1031
sys.exit("stackql-deploy operation failed 🚫")

0 commit comments

Comments
 (0)