#!/bin/bash DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" if [ "$1" = "--backend" -a -n "$2" ]; then BACKEND="$2" else BACKEND="sql" fi if ! type python > /dev/null 2>&1 && ! type python3 > /dev/null 2>&1; then echo "Cannot start the canaille demo server. Please install python on your system" echo "or run the demo with docker-compose." exit 1 fi if ! type uv > /dev/null 2>&1; then echo "Cannot start the canaille demo server. Please install uv on your system" echo "or run the demo with docker-compose." echo "https://docs.astral.sh/uv/getting-started/installation/" exit 1 fi pushd "$DIR" > /dev/null 2>&1 || exit if [ "$BACKEND" = "memory" ]; then uv sync --inexact --group demo --extra front --extra oidc uv run honcho --env ../.env --procfile Procfile-memory start elif [ "$BACKEND" = "sql" ]; then uv sync --inexact --group demo --extra front --extra oidc --extra sqlite uv run honcho --env ../.env --procfile Procfile-sql start elif [ "$BACKEND" = "ldap" ]; then if ! type slapd > /dev/null 2>&1; then echo "Cannot start the canaille demo server. Please install OpenLDAP on your system" echo "or run the demo with docker-compose." exit 1 fi uv sync --inexact --group demo --extra front --extra oidc --extra ldap uv run honcho --env ../.env --procfile Procfile-ldap start else echo "Usage: run.sh --backend [sql|memory|ldap]" fi popd || exit