bootstrap

 1#!/usr/bin/env bash
 2
 3set -e
 4
 5# if root or if sudo/unavailable, define an empty variable
 6if [ "$(id -u)" -eq 0 ]
 7then maysudo=''
 8else maysudo="$(command -v sudo || command -v doas || true)"
 9fi
10
11if [[ ! -v OFFLINE ]]; then
12  if [[ "$OSTYPE" == "linux-gnu"* ]]; then
13    echo "Linux dependencies..."
14    script/linux
15  else
16    echo "installing foreman..."
17    which foreman > /dev/null || brew install foreman
18  fi
19
20  # Install minio if needed
21  if ! which minio > /dev/null; then
22      if command -v brew > /dev/null; then
23          echo "minio not found. Installing via brew"
24          brew install minio/stable/minio
25      elif command -v apt > /dev/null; then
26          echo "minio not found. Installing via apt from https://dl.min.io/server/minio/release/linux-amd64/minio.deb"
27          wget -q https://dl.min.io/server/minio/release/linux-amd64/minio.deb -O /tmp/minio.deb
28          $maysudo apt install /tmp/minio.deb
29          rm -f /tmp/minio.deb
30      elif command -v dnf > /dev/null; then
31          echo "minio not found. Installing via dnf from https://dl.min.io/server/minio/release/linux-amd64/minio.rpm"
32          wget -q https://dl.min.io/server/minio/release/linux-amd64/minio.rpm -O /tmp/minio.rpm
33          $maysudo dnf install /tmp/minio.rpm
34          rm -f /tmp/minio.rpm
35      else
36          echo "No supported package manager found (brew, apt, or dnf)"
37          exit 1
38      fi
39  fi
40
41  # Install sqlx-cli if needed
42  if ! [[ "$(command -v sqlx)" && "$(sqlx --version)" == "sqlx-cli 0.7.2" ]]; then
43      echo "sqlx-cli not found or not the required version, installing version 0.7.2..."
44      cargo install sqlx-cli --version 0.7.2
45  fi
46fi
47
48
49cd crates/collab
50
51# Export contents of .env.toml
52eval "$(cargo run --bin dotenv)"
53
54echo "creating databases..."
55sqlx database create --database-url "$DATABASE_URL"
56sqlx database create --database-url "$LLM_DATABASE_URL"