start.sh
3.9 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
#!/bin/bash
# 绿纤美业ERP工资核算服务启动脚本
# 支持Windows、Linux、CentOS等操作系统
set -e
# 颜色定义
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color
# 日志函数
log_info() {
echo -e "${GREEN}[INFO]${NC} $1"
}
log_warn() {
echo -e "${YELLOW}[WARN]${NC} $1"
}
log_error() {
echo -e "${RED}[ERROR]${NC} $1"
}
log_debug() {
echo -e "${BLUE}[DEBUG]${NC} $1"
}
# 检查.NET 6是否安装
check_dotnet() {
if ! command -v dotnet &> /dev/null; then
log_error ".NET 6 未安装,请先安装 .NET 6 SDK"
log_info "下载地址: https://dotnet.microsoft.com/download/dotnet/6.0"
exit 1
fi
local dotnet_version=$(dotnet --version)
log_info "检测到 .NET 版本: $dotnet_version"
if [[ ! "$dotnet_version" =~ ^6\. ]]; then
log_warn "建议使用 .NET 6.0 版本"
fi
}
# 检查配置文件
check_config() {
if [ ! -f "appsettings.json" ]; then
log_error "配置文件 appsettings.json 不存在"
exit 1
fi
log_info "配置文件检查通过"
}
# 创建必要目录
create_directories() {
log_info "创建必要目录..."
mkdir -p logs output backup
log_info "目录创建完成"
}
# 还原NuGet包
restore_packages() {
log_info "还原NuGet包..."
dotnet restore
if [ $? -eq 0 ]; then
log_info "NuGet包还原成功"
else
log_error "NuGet包还原失败"
exit 1
fi
}
# 构建项目
build_project() {
log_info "构建项目..."
dotnet build -c Release
if [ $? -eq 0 ]; then
log_info "项目构建成功"
else
log_error "项目构建失败"
exit 1
fi
}
# 运行服务
run_service() {
local month=${1:-$(date +%Y-%m)}
log_info "启动工资核算服务,计算月份: $month"
# 检查参数
if [ $# -eq 0 ]; then
log_warn "未指定计算月份,使用当前月份: $month"
log_info "使用方法: $0 [YYYY-MM]"
log_info "示例: $0 2024-09"
fi
# 运行服务
dotnet run --configuration Release -- $month
}
# 显示帮助信息
show_help() {
echo "绿纤美业ERP工资核算服务"
echo ""
echo "使用方法:"
echo " $0 [月份] 运行工资核算服务"
echo " $0 --help, -h 显示帮助信息"
echo " $0 --version, -v 显示版本信息"
echo " $0 --build 仅构建项目"
echo " $0 --clean 清理构建文件"
echo ""
echo "参数:"
echo " 月份 计算月份,格式: YYYY-MM (例如: 2024-09)"
echo ""
echo "示例:"
echo " $0 2024-09 计算2024年9月工资"
echo " $0 计算当前月份工资"
echo ""
echo "环境要求:"
echo " - .NET 6.0 SDK"
echo " - MySQL数据库连接"
echo " - 网络连接"
}
# 显示版本信息
show_version() {
echo "绿纤美业ERP工资核算服务 v1.0.0"
echo "构建时间: $(date)"
echo ".NET版本: $(dotnet --version)"
}
# 清理构建文件
clean_project() {
log_info "清理构建文件..."
dotnet clean
rm -rf bin obj
log_info "清理完成"
}
# 主函数
main() {
case "${1:-}" in
--help|-h)
show_help
exit 0
;;
--version|-v)
show_version
exit 0
;;
--build)
check_dotnet
check_config
create_directories
restore_packages
build_project
log_info "构建完成"
exit 0
;;
--clean)
clean_project
exit 0
;;
*)
check_dotnet
check_config
create_directories
restore_packages
build_project
run_service "$@"
;;
esac
}
# 执行主函数
main "$@"