BTHLABS-57: Pre-auth page in the extension

This commit is contained in:
2025-09-16 19:36:15 +00:00
parent 46254730bd
commit 495255206e
9 changed files with 293 additions and 52 deletions

View File

@@ -1,9 +1,10 @@
# -*- coding: utf-8 -*-
from __future__ import annotations
import base64
import datetime
from invoke import task
from invoke import Context, task
from hotpocket_workspace_tools import get_workspace_mode, WorkspaceMode
@@ -63,7 +64,7 @@ WORKSPACE_MODE = get_workspace_mode()
ALL_SERVICES = ['backend', 'packages', 'extension']
def _run_in_service(ctx, service, command, **kwargs):
def _run_in_service(ctx: Context, service, command, **kwargs):
match WORKSPACE_MODE:
case WorkspaceMode.DOCKER:
return ctx.run(
@@ -75,7 +76,7 @@ def _run_in_service(ctx, service, command, **kwargs):
ctx.run(f'direnv exec . {command}')
def _get_version(ctx, service):
def _get_version(ctx: Context, service):
with ctx.cd(f'services/{service}'):
run_result = ctx.run('poetry version -s', hide='out')
@@ -88,27 +89,27 @@ def _get_head_sha(ctx):
@task
def clean(ctx, service):
def clean(ctx: Context, service):
_run_in_service(ctx, service, 'inv clean')
@task
def test(ctx, service):
def test(ctx: Context, service):
_run_in_service(ctx, service, 'inv test')
@task
def lint(ctx, service):
def lint(ctx: Context, service):
_run_in_service(ctx, service, 'inv lint')
@task
def typecheck(ctx, service):
def typecheck(ctx: Context, service):
_run_in_service(ctx, service, 'inv typecheck')
@task
def shell(ctx, service):
def shell(ctx: Context, service):
assert WORKSPACE_MODE == WorkspaceMode.DOCKER, (
'Just `cd services/{service}` ;)'
)
@@ -116,12 +117,21 @@ def shell(ctx, service):
@task
def django_shell(ctx, service):
def django_shell(ctx: Context, service):
_run_in_service(ctx, service, 'inv django-shell')
@task
def build(ctx,
def png_to_data_url(ctx: Context, png_path):
with open(png_path, 'rb') as png_f:
data = png_f.read()
encoded_data = base64.b64encode(data)
print(f'data:image/png;base64,{encoded_data.decode("utf-8")}')
@task
def build(ctx: Context,
service,
context=None,
builder=None,
@@ -175,7 +185,7 @@ def build(ctx,
@task
def publish(ctx,
def publish(ctx: Context,
service,
context=None,
target='deployment',
@@ -199,12 +209,12 @@ def publish(ctx,
@task
def ci(ctx, service):
def ci(ctx: Context, service):
_run_in_service(ctx, service, 'inv ci')
@task
def setup(ctx, service=None):
def setup(ctx: Context, service=None):
services_to_setup = []
services_to_setup = [*ALL_SERVICES]
@@ -216,7 +226,7 @@ def setup(ctx, service=None):
@task
def install(ctx, service=None):
def install(ctx: Context, service=None):
services_to_setup = []
services_to_setup = [*ALL_SERVICES]
@@ -228,7 +238,7 @@ def install(ctx, service=None):
@task
def lock(ctx, service):
def lock(ctx: Context, service):
_run_in_service(ctx, service, 'poetry lock --no-update')
@@ -238,20 +248,20 @@ def start_cloud(ctx):
@task
def start_web(ctx, service):
def start_web(ctx: Context, service):
_run_in_service(ctx, service, 'inv start-web')
@task
def start_celery_worker(ctx, service):
def start_celery_worker(ctx: Context, service):
_run_in_service(ctx, service, 'inv start-worker')
@task
def start_celery_beat(ctx, service):
def start_celery_beat(ctx: Context, service):
_run_in_service(ctx, service, 'inv start-beat')
@task
def start_app(ctx, service, app):
def start_app(ctx: Context, service, app):
_run_in_service(ctx, service, f'inv start-{app}')