mishima-nexus-client-csharp/scripts/pack-release.sh

40 lines
1.0 KiB
Bash
Raw Normal View History

#!/usr/bin/env bash
# Pack projects listed in scripts/pack-projects.list; version from Directory.Build.props only.
set -euo pipefail
ROOT="$(cd "$(dirname "$0")/.." && pwd)"
OUT="${ROOT}/nupkgs"
SCRIPT_DIR="$(dirname "$0")"
LIST="${SCRIPT_DIR}/pack-projects.list"
if [[ ! -f "${LIST}" ]]; then
echo "error: missing ${LIST}" >&2
exit 1
fi
VERSION="$(bash "${SCRIPT_DIR}/read-package-version.sh")"
rm -rf "${OUT}"
mkdir -p "${OUT}"
echo "pack-release: version=${VERSION} (Directory.Build.props) output=${OUT}"
while IFS= read -r proj || [[ -n "${proj}" ]]; do
[[ -z "${proj}" ]] && continue
[[ "${proj}" =~ ^# ]] && continue
proj_path="${ROOT}/${proj}"
if [[ ! -f "${proj_path}" ]]; then
echo "error: project not found: ${proj_path}" >&2
exit 1
fi
echo " pack ${proj}"
dotnet pack "${proj_path}" -c Release --nologo -o "${OUT}" -p:NuGetAudit=false
done < "${LIST}"
shopt -s nullglob
files=("${OUT}"/*.nupkg)
shopt -u nullglob
if [[ "${#files[@]}" -eq 0 ]]; then
echo "error: no packages produced" >&2
exit 1
fi
ls -la "${OUT}"/*.nupkg