AirTransmissionLibrary/scripts/pack_release.sh

70 lines
1.9 KiB
Bash
Executable File

#!/bin/bash
# 版本号
VERSION="1.2.0"
PACKAGE_NAME="AirTransmissionLibrary-${VERSION}"
# 创建临时目录和发布目录
rm -rf temp publish
mkdir -p temp/${PACKAGE_NAME}/{lib,include,doc}
mkdir -p publish
# 编译项目
echo "Building project..."
dotnet build src/AirTransmission/AirTransmission.csproj -c Release
# 复制必要文件
echo "Copying files..."
cp src/AirTransmission/bin/Release/net8.0/AirTransmission.dll temp/${PACKAGE_NAME}/lib/
cp src/AirTransmission/bin/Release/net8.0/AirTransmission.xml temp/${PACKAGE_NAME}/lib/
cp include/AirTransmission.h temp/${PACKAGE_NAME}/include/
# 生成文档
echo "Generating documentation..."
docfx metadata docfx.json
docfx build docfx.json
wkhtmltopdf --enable-local-file-access \
--page-size A4 \
--margin-top 20 \
--margin-bottom 20 \
--margin-left 20 \
--margin-right 20 \
--footer-left "大气传输计算库 API 文档" \
--footer-right "[page]/[topage]" \
--footer-spacing 8 \
--user-style-sheet docs/custom.css \
_site/docs/introduction.html \
_site/docs/API.html \
_site/api/AirTransmission.AtmosphericTransmittanceCalculator.html \
_site/api/AirTransmission.WeatherCondition.html \
_site/api/AirTransmission.WeatherType.html \
_site/docs/usage_examples.html \
temp/${PACKAGE_NAME}/doc/AirTransmission-API-Doc.pdf
# 创建 README
cat > temp/${PACKAGE_NAME}/README.txt << EOL
大气传输计算库 v${VERSION}
目录结构:
lib/ - 库文件
AirTransmission.dll - 主库文件
AirTransmission.xml - API 文档(用于 IDE 智能提示)
include/ - 头文件
AirTransmission.h - C++ 头文件
doc/ - 文档
AirTransmission-API-Doc.pdf - API 文档
使用说明请参考 doc/AirTransmission-API-Doc.pdf
EOL
# 打包
echo "Creating package..."
cd temp
zip -r ../publish/${PACKAGE_NAME}.zip ${PACKAGE_NAME}
cd ..
# 清理临时文件
echo "Cleaning up..."
rm -rf temp
echo "Package created at publish/${PACKAGE_NAME}.zip"