我在Jenkins作业的工作区中有一个Makefile,我想在运行使用此Makefile的脚本的下一部分之前,编辑掉其中的某些部分,然后保存它。
我想删掉的部分是-
PUMP_MARKER:=,cpp
ifneq (,$(findstring $(PUMP_MARKER), $(DISTCC_HOSTS)))
PUMP:=pump
else
PUMP:=
endif
我正在寻找一些外壳命令,我可以把我的groovy脚本,这将打开这个文件,并删除上述部分,保存它,然后继续前进。
我不擅长shell,所以我不可能自己解决这个问题。
下面是我的groovy脚本的外观-
stage('Build'){
dir ("$WORKSPACE/$SVN_TAG") {
Here- I want to insert some shell command to edit that file out
}
}
请提出一些想法来实现这一点。
**注1-**我知道我可以只使用vi文件并手动执行此操作,但我希望为多个作业执行此操作,我真正希望能够在我的每个Groovy脚本中粘贴并自动执行此操作。
**注2-**它不一定是shell,可以是任何语言,只要我可以在groovy脚本中运行它,它就可以完成工作。
1条答案
按热度按时间33qvvth11#
我可以用这个补丁工具解决这个问题-
脚本在要修改的文件上调用patch(在本例中为foo.txt)。patch工具随后也会在标准输入上获取它要应用的diff。这是在下面的代码中使用shell中的“here document”机制实现的,参见〈〈后跟带引号的标识符END。带引号的END是必要的,以确保后续的diff文本不会受到扩展。