#!/bin/sh

set -e

if [ $# -lt 2 ]; then
    echo "Usage: $0 <repo_path> <pkg1> [pkg2 ...]"
    echo "Example: $0 /usr/local/my_repo brotli expat freetype2"
    exit 1
fi

REPO_PATH="$1"
shift

# Создаём структуру каталогов репозитория
mkdir -p "${REPO_PATH}/All"
mkdir -p "${REPO_PATH}/Latest"

# Скачиваем пакеты и зависимости, но не устанавливаем
echo "Fetching packages..."
pkg fetch -y -o "${REPO_PATH}/All" "$@"

# Создаём симлинки в Latest для всех скачанных пакетов
for pkg_file in "${REPO_PATH}/All/"*.pkg; do
    [ -e "$pkg_file" ] || continue
    pkg_name=$(basename "$pkg_file")
    ln -sf "../All/${pkg_name}" "${REPO_PATH}/Latest/${pkg_name}"
done

# Создаём файл метаданных репозитория
echo "Creating repository metadata..."
pkg repo "${REPO_PATH}"

# Настраиваем локальный репозиторий
REPO_CONF="/usr/local/etc/pkg/repos/local.conf"
mkdir -p "$(dirname "${REPO_CONF}")"

cat > "${REPO_CONF}" << EOF
local: {
    url: file://${REPO_PATH},
    enabled: yes
}
EOF

echo "Done! Local repository created at: ${REPO_PATH}"
echo "Repository config written to: ${REPO_CONF}"
echo ""
echo "To use the repository, run: pkg update -f"