load('ext://uibutton', 'cmd_button', 'bool_input', 'location')
load('ext://namespace', 'namespace_create', 'namespace_inject')
namespace_create('find')

docker_build(
    'localhost:5001/find-backend:latest',
    context='..',
    dockerfile='../Dockerfile',
    only=['./src/backend', './docker'],
    target = 'backend-production',
    live_update=[
        sync('../src/backend', '/app'),
        run(
            'pip install .',
            trigger=['../src/backend/pyproject.toml']
        )
    ]
)


k8s_yaml(local('cd ../src/helm && helmfile -n find -e dev template .'))

migrate_db = '''
set -eu
# get k8s pod name from tilt resource name
POD_NAME="$(tilt get kubernetesdiscovery find-backend -ojsonpath='{.status.pods[0].name}')"
kubectl -n find exec "$POD_NAME" -- python manage.py migrate --no-input
'''
cmd_button('Migrate db',
           argv=['sh', '-c', migrate_db],
           resource='find-backend',
           icon_name='developer_board',
           text='Run database migration',
)

create_demo = '''
set -eu
# get k8s pod name from tilt resource name
POD_NAME="$(tilt get kubernetesdiscovery find-backend -ojsonpath='{.status.pods[0].name}')"
kubectl -n find exec "$POD_NAME" -- python manage.py create_demo --force
'''
cmd_button('Create demo fixtures',
           argv=['sh', '-c', create_demo],
           resource='find-backend',
           icon_name='developer_board',
           text='Run demo fixtures',
)
