init
This commit is contained in:
111
nuget-download.sh
Executable file
111
nuget-download.sh
Executable 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
|
||||
Reference in New Issue
Block a user