1
0
Files
build.ems/pkg/rpm/SPECS/omc.spec
2025-03-20 16:16:49 +08:00

133 lines
2.9 KiB
RPMSpec

Name: omc
Version: {version}
Release: {date}
Summary: OMC-Team
License: GPL
Group: Applications/Communications
BuildArch: {arch}
# 软件说明
%description
OMC is a management application for the 5GC core network.
# 打包前脚本 ========
%prep
rm -rf ${RPM_BUILD_ROOT} && mkdir -p ${RPM_BUILD_ROOT}
cp -rf ${RPM_BUILD_DIR}/* ${RPM_BUILD_ROOT}/
# 安装前脚本 ========
%pre
rm -rf /usr/local/etc/omc/default
# 安装后脚本 ========
%post
RootDir=/usr/local/etc/omc
# 执行安装后配置
echo ""
echo "Output: $RootDir"
echo "Please Run:"
echo " sudo systemctl start|stop|status|restart omc.service"
echo "Setting Firewall:"
echo " add: "
echo " firewall-cmd --zone=public --add-port=80/tcp --permanent && firewall-cmd --reload"
echo " remove: "
echo " firewall-cmd --zone=public --remove-port=80/tcp --permanent && firewall-cmd --reload"
echo ""
# Check if this is the first installation or upgrade
if [ ! -f $RootDir/omc.conf ]; then
# First installation, perform the related operations
chmod +rx /usr/local/bin/omc
cp $RootDir/default/omc.conf $RootDir/omc.conf
cp $RootDir/default/omc.yaml $RootDir/omc.yaml
cp $RootDir/default/sshsvc.yaml $RootDir/sshsvc.yaml
# read environment parameter and to do
if [ -n "$M_PARAM" ] && [ -n "$C_PARAM" ]; then
bash $RootDir/script/setup.sh -i -m $M_PARAM -c $C_PARAM
elif [ -n "$C_PARAM" ]; then
bash $RootDir/script/setup.sh -i -c $C_PARAM
else
bash $RootDir/script/setup.sh -i
fi
if [ $? -ne 0 ]; then
echo "Initialization failure."
rm -rf $RootDir
exit 1
fi
systemctl daemon-reload
systemctl enable omc.service
systemctl enable sshsvc.service
systemctl daemon-reload
systemctl restart omc.service
systemctl restart sshsvc.service
else
# Operation when upgrading
bash $RootDir/script/setup.sh -u
if [ $? -ne 0 ]; then
echo "Upgrade failed."
exit 1
fi
systemctl daemon-reload
systemctl start omc.service
systemctl start sshsvc.service
fi
rm -rf $RootDir/vendor
# 卸载前脚本 ========
%preun
# 停止服务
systemctl daemon-reload
systemctl stop omc.service
systemctl stop sshsvc.service
# 卸载后脚本 ========
%postun
case "$1" in
0)
# 卸载操作
# 删除服务文件
systemctl daemon-reload
systemctl disable omc.service
systemctl disable sshsvc.service
rm -rf /lib/systemd/system/omc.service
rm -rf /lib/systemd/system/sshsvc.service
systemctl daemon-reload
# 移除相关文件
rm -rf /usr/local/bin/omc
rm -rf /usr/local/etc/omc
;;
1)
# 更新操作
;;
esac
# 包含的文件 ========
%files
%defattr(-,root,root,-)
/lib/systemd/system/*
/usr/local/bin/*
/usr/local/etc/omc/*
/usr/local/omc/*
# 更新日志 ========
%changelog
* Wed Jan 01 2025 omc <omc@example.com> - {version}
- Build package {date}.