From 5b3fa7ce9b4aa87b02989445e36c8e8507d10d90 Mon Sep 17 00:00:00 2001 From: svsptech Date: Sat, 25 Apr 2026 02:26:46 +0500 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D1=82?= =?UTF-8?q?=D1=8C=20pack?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pack | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 pack diff --git a/pack b/pack new file mode 100644 index 0000000..f304f0d --- /dev/null +++ b/pack @@ -0,0 +1,47 @@ +#!/bin/sh + +set -e + +if [ $# -lt 2 ]; then + echo "Usage: $0 [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" \ No newline at end of file