This commit is contained in:
2025-07-29 11:09:34 +05:00
commit e91bd99572
5 changed files with 1055 additions and 0 deletions

111
nuget-download.sh Executable file
View File

@ -0,0 +1,111 @@
#!/bin/bash
# Утилита для скачивания NuGet пакетов с зависимостями
# Использование: ./nuget-download.sh <package-id> [framework] [output-dir] [version]
show_help() {
echo "Использование: $0 <package-id> [framework] [output-dir] [version]"
echo ""
echo "Параметры:"
echo " package-id - ID пакета для скачивания (обязательный)"
echo " framework - Целевой framework (по умолчанию netstandard2.0)"
echo " output-dir - Папка для сохранения пакетов (по умолчанию ./nuget-packages)"
echo " version - Версия пакета (по умолчанию последняя стабильная)"
echo ""
echo "Примеры:"
echo " $0 Npgsql"
echo " $0 Npgsql netstandard2.0"
echo " $0 Npgsql netstandard2.0 ./my-packages"
echo " $0 Npgsql netstandard2.0 ./my-packages 7.0.6"
echo ""
echo "Frameworks:"
echo " netstandard2.0 - .NET Standard 2.0"
echo " net6.0 - .NET 6"
echo " net8.0 - .NET 8"
}
interactive_mode() {
echo "=== Интерактивный режим скачивания NuGet пакетов ==="
echo ""
# Запрашиваем package-id
read -p "Введите ID пакета: " PACKAGE_ID
if [ -z "$PACKAGE_ID" ]; then
echo "Ошибка: ID пакета обязателен"
exit 1
fi
# Запрашиваем framework
read -p "Введите framework [netstandard2.0]: " FRAMEWORK
FRAMEWORK=${FRAMEWORK:-netstandard2.0}
# Запрашиваем output-dir
read -p "Введите папку назначения [./nuget-packages]: " OUTPUT_DIR
OUTPUT_DIR=${OUTPUT_DIR:-./nuget-packages}
# Запрашиваем version
read -p "Введите версию (пусто для последней стабильной): " VERSION
echo ""
echo "Параметры:"
echo " Пакет: $PACKAGE_ID"
echo " Framework: $FRAMEWORK"
echo " Папка назначения: $OUTPUT_DIR"
if [ -n "$VERSION" ]; then
echo " Версия: $VERSION"
else
echo " Версия: последняя стабильная"
fi
echo ""
read -p "Продолжить? (y/N): " CONFIRM
if [[ ! "$CONFIRM" =~ ^[Yy]$ ]]; then
echo "Отменено."
exit 0
fi
}
# Проверяем наличие параметров
if [ $# -eq 0 ]; then
interactive_mode
else
# Проверяем флаги помощи
if [ "$1" = "--help" ] || [ "$1" = "-h" ]; then
show_help
exit 0
fi
# Парсим параметры
PACKAGE_ID=$1
FRAMEWORK=${2:-netstandard2.0}
OUTPUT_DIR=${3:-./nuget-packages}
VERSION=${4:-}
# Проверяем обязательный параметр
if [ -z "$PACKAGE_ID" ]; then
echo "Ошибка: ID пакета обязателен"
show_help
exit 1
fi
fi
echo "Скачивание пакета: $PACKAGE_ID"
echo "Framework: $FRAMEWORK"
echo "Папка назначения: $OUTPUT_DIR"
if [ -n "$VERSION" ]; then
echo "Версия: $VERSION"
else
echo "Версия: последняя стабильная"
fi
echo ""
# Формируем команду
CMD="dotnet run -- --package-id \"$PACKAGE_ID\" --framework \"$FRAMEWORK\" --output-dir \"$OUTPUT_DIR\""
if [ -n "$VERSION" ]; then
CMD="$CMD --version \"$VERSION\""
fi
echo "Выполняется команда: $CMD"
echo ""
eval $CMD