gpt4 book ai didi

java - 转速规范如何避免重复

转载 作者:行者123 更新时间:2023-11-30 11:42:32 25 4
gpt4 key购买 nike

您好,我在构建 rpm 包时遇到代码重复问题。

我有这样的规范:

Summary     : ${product.id} ${rpmType}
Name : ${product.id}_${rpmType}
.....


%build
%install


%files
%defattr(-,root,java,750)
%{home}

%clean
rm -rf %{buildroot}


%pre
CHECK_PAUSE=2;
echo -n "Stopping tomcat";
sh %{binary}/shutdown.sh
rc=0
while [ "$rc" == 0 ]; do
sleep $CHECK_PAUSE;
wget -q -O /dev/null -S http://localhost:8080/some-server/test;
rc=$?;
done;
echo "Tomcat: STOPPED"
mv %{home}/%{warname} %{home}/%{warname}.`date +%Y%d%m`
rm -rf %{home}/some-server
echo done.

%post
CHECK_PAUSE=2;
echo -n "Starting tomcat";
sh %{binary}/startup.sh
rc=1
while [ "$rc" -ne 0 ]; do
sleep $CHECK_PAUSE
wget -q -O /dev/null -S http://localhost:8080/some-server/test
rc=$?
done
echo "Tomcat: STARTED"

%preun
if [ "$1" == "0" ]; then
#STOP TOMCAT HERE SAME WAY AS IN PRE
fi


%postun
if [ "$1" == "0" ]; then
#START TOMCAT HERE SAME WAY AS IN POST
fi

preun 和 postun 部分将要执行的脚本与 pre 和 post 部分相同。但我不想只是复制/粘贴它们。是否有一些复杂的解决方案来避免此处的代码重复?

最佳答案

这是一个可能的解决方案:

  1. 为每段可重用的 shell 脚本代码创建单独的文件。

  2. 创建一种预处理器(可能是另一个 shell 脚本),将上面步骤 1 中创建的文件插入到 spec 文件中适当的 scriplet 标签下(即 %pre、%post、%preun、%postun ).

如果您使用的是源代码控制管理系统,您可能还想跟踪这些额外的文件。

关于java - 转速规范如何避免重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11655466/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com