|
| 1 | +set dotenv-load |
| 2 | + |
| 3 | +mod chart 'tasks/chart' |
| 4 | + |
| 5 | +# List available commands |
| 6 | +[private] |
| 7 | +default: |
| 8 | + just help |
| 9 | + |
| 10 | +# List available commands |
| 11 | +help: |
| 12 | + just --justfile {{justfile()}} --list |
| 13 | + |
| 14 | +# Install curl if missing |
| 15 | +[private] |
| 16 | +_install-curl: |
| 17 | + #!/usr/bin/env bash |
| 18 | + set -e |
| 19 | + |
| 20 | + if ! command -v curl &> /dev/null; then |
| 21 | + echo "📦 Installing curl..." |
| 22 | + if command -v apt-get &> /dev/null; then |
| 23 | + sudo apt-get update -qq && sudo apt-get install -y curl |
| 24 | + elif command -v yum &> /dev/null; then |
| 25 | + sudo yum install -y curl |
| 26 | + elif command -v apk &> /dev/null; then |
| 27 | + sudo apk add --no-cache curl |
| 28 | + else |
| 29 | + echo "❌ Error: curl is not installed and no package manager found" |
| 30 | + echo " Please install curl manually" |
| 31 | + exit 1 |
| 32 | + fi |
| 33 | + echo "✓ curl installed" |
| 34 | + fi |
| 35 | + |
| 36 | +# Install Helm if missing |
| 37 | +[private] |
| 38 | +_install-helm: |
| 39 | + #!/usr/bin/env bash |
| 40 | + set -e |
| 41 | + |
| 42 | + if command -v helm &> /dev/null; then |
| 43 | + exit 0 |
| 44 | + fi |
| 45 | + |
| 46 | + echo "📦 Installing Helm..." |
| 47 | + |
| 48 | + # Only Linux / amd64 automated install for now; otherwise instruct user |
| 49 | + UNAME_S="$(uname -s || echo unknown)" |
| 50 | + UNAME_M="$(uname -m || echo unknown)" |
| 51 | + |
| 52 | + if [ "$UNAME_S" != "Linux" ] || { [ "$UNAME_M" != "x86_64" ] && [ "$UNAME_M" != "amd64" ]; }; then |
| 53 | + echo "❌ Automatic Helm install only supported on Linux amd64." |
| 54 | + echo " Please install Helm manually: https://helm.sh/docs/intro/install/" |
| 55 | + exit 1 |
| 56 | + fi |
| 57 | + |
| 58 | + TMP_DIR="$(mktemp -d)" |
| 59 | + trap 'rm -rf "$TMP_DIR"' EXIT |
| 60 | + |
| 61 | + # Get latest Helm release tag |
| 62 | + HELM_TAG="$(curl -sSL https://api.github.com/repos/helm/helm/releases/latest | grep -oE '\"tag_name\":\s*\"v[0-9.]+\"' | head -1 | sed -E 's/\"tag_name\":\s*\"(v[0-9.]+)\"/\1/')" |
| 63 | + if [ -z "$HELM_TAG" ]; then |
| 64 | + echo "❌ Failed to determine latest Helm version." |
| 65 | + exit 1 |
| 66 | + fi |
| 67 | + |
| 68 | + ARCHIVE="helm-${HELM_TAG}-linux-amd64.tar.gz" |
| 69 | + URL="https://get.helm.sh/${ARCHIVE}" |
| 70 | + |
| 71 | + echo "⬇️ Downloading ${URL}..." |
| 72 | + curl -sSL "$URL" -o "$TMP_DIR/helm.tar.gz" |
| 73 | + tar -xzf "$TMP_DIR/helm.tar.gz" -C "$TMP_DIR" |
| 74 | + |
| 75 | + if sudo mv "$TMP_DIR/linux-amd64/helm" /usr/local/bin/helm 2>/dev/null; then |
| 76 | + chmod +x /usr/local/bin/helm |
| 77 | + echo "✓ Helm installed to /usr/local/bin/helm" |
| 78 | + else |
| 79 | + mkdir -p "$HOME/.local/bin" |
| 80 | + mv "$TMP_DIR/linux-amd64/helm" "$HOME/.local/bin/helm" |
| 81 | + chmod +x "$HOME/.local/bin/helm" |
| 82 | + export PATH="$HOME/.local/bin:$PATH" |
| 83 | + echo "✓ Helm installed to ~/.local/bin/helm" |
| 84 | + fi |
| 85 | + |
| 86 | + if ! command -v helm &> /dev/null; then |
| 87 | + echo "❌ Error: Failed to install Helm" |
| 88 | + exit 1 |
| 89 | + fi |
| 90 | + |
| 91 | +# Start compose services (backend, frontend, minio s3) |
| 92 | +start: |
| 93 | + #!/usr/bin/env bash |
| 94 | + set -e |
| 95 | + docker compose up -d |
| 96 | + |
| 97 | +# Stop compose services |
| 98 | +stop: |
| 99 | + docker compose down --remove-orphans |
| 100 | + |
| 101 | +# Start all services for development |
| 102 | +dev: |
| 103 | + just start |
| 104 | + |
| 105 | +# Echo to terminal with blue colour |
| 106 | +[no-cd] |
| 107 | +_echo-blue text: |
| 108 | + #!/usr/bin/env sh |
| 109 | + printf "\033[0;34m%s\033[0m\n" "{{ text }}" |
| 110 | + |
| 111 | +# Echo to terminal with yellow colour |
| 112 | +[no-cd] |
| 113 | +_echo-yellow text: |
| 114 | + #!/usr/bin/env sh |
| 115 | + printf "\033[0;33m%s\033[0m\n" "{{ text }}" |
| 116 | + |
| 117 | +# Echo to terminal with red colour |
| 118 | +[no-cd] |
| 119 | +_echo-red text: |
| 120 | + #!/usr/bin/env sh |
| 121 | + printf "\033[0;41m%s\033[0m\n" "{{ text }}" |
0 commit comments