@echo off
rem ********************************************************************************
rem Packages and publishes the NuGet packages.
rem ********************************************************************************
setlocal enabledelayedexpansion
:help_requested
if /i "%~1" == "-?" call :usage & exit /b 0
if /i "%~1" == "--help" call :usage & exit /b 0
:check_args
if /i "%~1" == "" call :usage & exit /b 1
:configure
set publishFolder=%~1
set buildType=release
if /i "%~2" == "--debug" (
set buildType=debug
shift
)
if /i "%~2" == "--release" (
set buildType=release
shift
)
set root=%~dp0
set root=%root:~0,-1%
:check_folder
if not exist "%publishFolder%" (
echo ERROR: Invalid publish folder '%publishFolder%'
exit /b 1
)
if exist "%publishFolder%\*.nupkg" (
echo ****************************************
echo WARNING: The publish folder is not empty
echo ****************************************
)
:for_all_packages
for /d %%d in (YourSolution*) do (
if exist "%%d\*.nuspec" (
echo Publishing '%%d'...
pushd "%%d"
..\nuget.exe pack -Properties Configuration=release -Version <Version>
if !errorlevel! neq 0 popd & exit /b !errorlevel!
for %%p in (*.nupkg) do (
..\nuget.exe push "%%p" -Source "<nuget repo source> -ApiKey <api-key>
)
popd
)
)
:success
exit /b 0
:usage
echo.
echo USAGE: %~n0 ^<folder^> [--debug ^| --release]
echo.
echo e.g. %~n0 D:\Work\Test\NuGet --release
echo.
echo Note: --release is the default.
echo.
goto :eof