1
0

fix: 优化setup.sh和omc.spec脚本

This commit is contained in:
TsMask
2025-04-19 15:53:24 +08:00
parent 23a51956ca
commit 7cac1e1249
2 changed files with 45 additions and 78 deletions

View File

@@ -1,6 +1,5 @@
#!/bin/bash #!/bin/bash
set -e
set -x
OMCBinFile=/usr/local/bin/omc OMCBinFile=/usr/local/bin/omc
OMCEtcDir=/usr/local/etc/omc OMCEtcDir=/usr/local/etc/omc
confFile=$OMCEtcDir/omc.yaml confFile=$OMCEtcDir/omc.yaml
@@ -94,55 +93,33 @@ if [ -n "$C_PARAM" ]; then
fi fi
# echo "Customize parameter: $VENDORS" # echo "Customize parameter: $VENDORS"
# ========================= Reject non-specified pattern data # ========================= Specify the mode pre-determination
case "$T_PARAM" in if [[ "$T_PARAM" == "install" ]]; then
"install") case "$MODE" in
case "$T_PARAM" in std)
"std") if ! command -v mysql &>/dev/null && ! command -v mariadb &>/dev/null; then
if ! command -v mysql &>/dev/null && ! command -v mariadb &>/dev/null; then echo "MySQL or MariaDB not installed"
echo "MySQL or MariaDB not installed" exit 1
exit 1 fi
fi ;;
rm -rf $OMCEtcDir/database/lite lite)
rm -rf $OMCEtcDir/default/omc_db.sqlite cp -rf $OMCEtcDir/default/omc_db.sqlite $OMCEtcDir/database/omc_db.sqlite
;; ;;
"lite") esac
rm -rf $OMCEtcDir/database/std fi
cp -rf $OMCEtcDir/default/omc_db.sqlite $OMCEtcDir/database/omc_db.sqlite
;;
esac
;;
"upgrade")
case "$T_PARAM" in
"std")
rm -rf $OMCEtcDir/database/lite
rm -rf $OMCEtcDir/default/omc_db.sqlite
;;
"lite")
rm -rf $OMCEtcDir/database/std
;;
esac
;;
esac
# ========================= Execute the catalog sql file according to the schema # ========================= Execute the catalog sql file according to the schema
$OMCBinFile -c $confFile --sqlPath $OMCEtcDir/database/$MODE/$T_PARAM --sqlSource $MODE $OMCBinFile -c $confFile --sqlPath $OMCEtcDir/database/$MODE/$T_PARAM --sqlSource $MODE
# ========================= Customize # ========================= Customize
case "$T_PARAM" in if [[ -d $OMCEtcDir/vendor ]]; then
"install") if [[ "$T_PARAM" == "install" ]]; then
if [[ -d $OMCEtcDir/vendor ]]; then cp -rf $OMCEtcDir/vendor/$VENDORS/web/* $OMCEtcDir/web/background
cp -rf $OMCEtcDir/vendor/$VENDORS/web/* $OMCEtcDir/web/background cp -rf $OMCEtcDir/vendor/$VENDORS/static/* /usr/local/omc/static
cp -rf $OMCEtcDir/vendor/$VENDORS/static/* /usr/local/omc/static fi
$OMCBinFile -c $confFile --sqlPath $OMCEtcDir/vendor/$VENDORS/database/$MODE/$T_PARAM --sqlSource $MODE $OMCBinFile -c $confFile --sqlPath $OMCEtcDir/vendor/$VENDORS/database/$MODE/$T_PARAM --sqlSource $MODE
fi fi
;;
"upgrade")
if [[ -d $OMCEtcDir/vendor ]]; then
$OMCBinFile -c $confFile --sqlPath $OMCEtcDir/vendor/$VENDORS/database/$MODE/$T_PARAM --sqlSource $MODE
fi
;;
esac
# bash setup.sh -i -m std -c omc # bash setup.sh -i -m std -c omc

View File

@@ -2,33 +2,34 @@ Name: omc
Version: {version} Version: {version}
Release: {date} Release: {date}
Summary: OMC-Team Summary: OMC-Team
License: GPL License: GPL
Group: Applications/Communications Group: Applications/Communications
BuildArch: {arch} BuildArch: {arch}
# 软件说明 # Software Description ========
%description %description
OMC is a management application for the 5GC core network. OMC is a management application for the 5GC core network.
# 打包前脚本 ======== # Pre-Packaging Script ========
%prep %prep
rm -rf ${RPM_BUILD_ROOT} && mkdir -p ${RPM_BUILD_ROOT} rm -rf ${RPM_BUILD_ROOT} && mkdir -p ${RPM_BUILD_ROOT}
cp -rf ${RPM_BUILD_DIR}/* ${RPM_BUILD_ROOT}/ cp -rf ${RPM_BUILD_DIR}/* ${RPM_BUILD_ROOT}/
chmod 644 ${RPM_BUILD_ROOT}/usr/local/etc/omc/web/wiregasm/wiregasm.wasm chmod 644 ${RPM_BUILD_ROOT}/usr/local/etc/omc/web/wiregasm/wiregasm.wasm
# 安装前脚本 ========
# Pre-Installation Scripts ========
%pre %pre
rm -rf /usr/local/etc/omc/default rm -rf /usr/local/etc/omc/default
# 安装后脚本 ======== # Post-Installation Scripts ========
%post %post
RootDir=/usr/local/etc/omc RootDir=/usr/local/etc/omc
# 执行安装后配置
# Perform post-installation configuration
echo "" echo ""
echo "Output: $RootDir" echo "Output: $RootDir"
echo "Please Run:" echo "Please Run:"
@@ -81,50 +82,39 @@ else
systemctl start omc.service systemctl start omc.service
systemctl start sshsvc.service systemctl start sshsvc.service
fi fi
echo ""
# rm -rf $RootDir/vendor
# 卸载前脚本 ======== # Pre-uninstallation script ========
%preun %preun
# 停止服务 # Stop Service
systemctl daemon-reload systemctl daemon-reload
systemctl stop omc.service systemctl stop omc.service
systemctl stop sshsvc.service systemctl stop sshsvc.service
# 卸载后脚本 ======== # Post-uninstallation script ========
%postun %postun
case "$1" in case "$1" in
0) 0)
# 卸载操作 # Uninstallation operations
# 删除服务文件 # Deletion of service files
# systemctl daemon-reload rm -rf /lib/systemd/system/omc.service
# systemctl disable omc.service rm -rf /lib/systemd/system/sshsvc.service
# systemctl disable sshsvc.service systemctl daemon-reload
# rm -rf /lib/systemd/system/omc.service
# rm -rf /lib/systemd/system/sshsvc.service
# systemctl daemon-reload
# 移除相关文件 # Removal of relevant documents
# rm -rf /usr/local/bin/omc rm -rf /usr/local/bin/omc
# rm -rf /usr/local/etc/omc rm -rf /usr/local/etc/omc
rm -rf /usr/local/etc/omc/{*.yaml,*.conf}
DB_DIR="/usr/local/etc/omc/database"
rm -rf $DB_DIR/omc_db.sqlite
if [[ -d "$DB_DIR" && -z "$(ls -A "$DB_DIR")" ]]; then
rm -r "$DB_DIR"
fi
;; ;;
1) 1)
# 更新操作 # Update Operation
;; ;;
esac esac
# 包含的文件 ======== # Included documents ========
%files %files
%defattr(-,root,root,-) %defattr(-,root,root,-)
/lib/systemd/system/* /lib/systemd/system/*
@@ -133,7 +123,7 @@ esac
/usr/local/omc/* /usr/local/omc/*
# 更新日志 ======== # Update Log ========
%changelog %changelog
* Wed Jan 01 2025 omc <omc@example.com> - {version} * Wed Jan 01 2025 omc <omc@example.com> - {version}
- Build package {date}. - Build package {date}.