#!/usr/bin/env bash set -euo pipefail APP_ID="${1:-}" if [ -z "$APP_ID" ]; then echo "Usage:" echo " ./deploy-app.sh " exit 1 fi CONFIG_FILE="/opt/appfactory/config/appfactory.env" if [ -f "$CONFIG_FILE" ]; then source "$CONFIG_FILE" fi APPFACTORY_DIR="${APPFACTORY_DIR:-/opt/appfactory}" WORKSPACE_DIR="${WORKSPACE_DIR:-/home/jiri/workspace}" APP_SOURCE_DIR="$WORKSPACE_DIR/$APP_ID" CATALOG_FILE="$APPFACTORY_DIR/apps/catalog.yml" TOOLS_DIR="$WORKSPACE_DIR/appfactory-tools" if [ ! -d "$APP_SOURCE_DIR" ]; then echo "Missing app source: $APP_SOURCE_DIR" exit 1 fi if [ ! -f "$APP_SOURCE_DIR/Dockerfile" ]; then echo "Missing Dockerfile in: $APP_SOURCE_DIR" exit 1 fi echo "Updating source code..." cd "$APP_SOURCE_DIR" if [ -d ".git" ]; then git fetch origin main git reset --hard origin/main else echo "WARNING: $APP_SOURCE_DIR is not a git repository" fi echo "Building Docker image..." docker build --pull --no-cache -t "$APP_ID:latest" "$APP_SOURCE_DIR" if [ ! -f "$CATALOG_FILE" ]; then echo "apps:" > "$CATALOG_FILE" fi if ! grep -q "id: $APP_ID" "$CATALOG_FILE"; then cat >> "$CATALOG_FILE" <