Files
plugins/build_all.sh

98 lines
2.3 KiB
Bash
Executable File

#!/bin/bash
# 构建脚本,用于编译所有插件和 web_example.go
# # 设置工作目录
WORK_DIR="/www/plugins"
# # 设置 GOPATH 以确保使用相同版本的 plugins 包
# export GOPATH=$WORK_DIR
export GO111MODULE=on
# 确保输出目录存在
DIST_DIR="/www/plugins/example/dist"
mkdir -p $DIST_DIR
go mod tidy
echo "===== 开始编译插件 ====="
# 编译带有明确类型的日志插件
echo "编译日志插件 (明确类型)..."
cd $WORK_DIR/plugins/logger
go build -buildmode=plugin -o $DIST_DIR/logger.so
if [ $? -eq 0 ]; then
echo "日志插件编译成功!"
else
echo "日志插件编译失败!"
exit 1
fi
# 编译使用默认类型的日志插件
echo "编译默认日志插件 (默认类型)..."
cd $WORK_DIR/plugins/defaultlogger
go build -buildmode=plugin -o $DIST_DIR/defaultlogger.so
if [ $? -eq 0 ]; then
echo "默认日志插件编译成功!"
else
echo "默认日志插件编译失败!"
exit 1
fi
# 编译统计插件
echo "编译统计插件..."
cd $WORK_DIR/plugins/stats
go build -buildmode=plugin -o $DIST_DIR/stats.so
if [ $? -eq 0 ]; then
echo "统计插件编译成功!"
else
echo "统计插件编译失败!"
exit 1
fi
# 编译存储插件
echo "编译存储插件..."
cd $WORK_DIR/plugins/storage
go build -buildmode=plugin -o $DIST_DIR/storage.so
if [ $? -eq 0 ]; then
echo "存储插件编译成功!"
else
echo "存储插件编译失败!"
exit 1
fi
# 编译示例插件
echo "编译示例插件..."
cd $WORK_DIR/plugins/demoutils
go build -buildmode=plugin -o $DIST_DIR/demoutils.so
if [ $? -eq 0 ]; then
echo "示例插件编译成功!"
else
echo "示例插件编译失败!"
exit 1
fi
cd ..
echo "===== 所有插件编译完成 ====="
# 复制 web_admin.go 到工作目录
mkdir -p $WORK_DIR/example
# 编译 web_admin.go
echo "===== 编译 web_admin ====="
cd $WORK_DIR/example
go build -o /www/plugins/example/web_admin web_admin.go
if [ $? -eq 0 ]; then
echo "web_admin.go 编译成功!"
else
echo "web_admin.go 编译失败!"
exit 1
fi
echo "===== 所有编译完成 ====="
echo "插件文件保存在 $DIST_DIR 目录中:"
ls -la $DIST_DIR
echo "web_admin 可执行文件保存在 /www/plugins/example/web_admin"
echo "===== 启动web_admin ====="
/www/plugins/example/web_admin