Добавить pack
This commit is contained in:
parent
0736eacb41
commit
5b3fa7ce9b
47
pack
Normal file
47
pack
Normal file
@ -0,0 +1,47 @@
|
||||
#!/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"
|
||||
Loading…
x
Reference in New Issue
Block a user