我有一个Makefile在我的Jenkins作业的工作空间,我想编辑掉某些部分,然后保存它,在运行使用这个Makefile的脚本的下一部分。
我想剪掉的部分是-
PUMP_MARKER:=,cpp
ifneq (,$(findstring $(PUMP_MARKER), $(DISTCC_HOSTS)))
PUMP:=pump
else
PUMP:=
endif
我正在寻找一些shell命令,我可以把我的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脚本中运行它,它就能完成工作。
我可以通过使用补丁工具来解决这个问题-
patch foo.txt <<'END'
1,6d0
< PUMP_MARKER:=,cpp
< ifneq (,$(findstring $(PUMP_MARKER), $(DISTCC_HOSTS)))
< PUMP:=pump
< else
< PUMP:=
< endif
END
脚本对要修改的文件(在本例中为foo.txt)调用patch。然后贴片工具也在标准输入上得到它应该应用的差异。这是在下面的代码中使用"here"文档实现的。机构从外壳,见<<后面是带引号的标识符END。引用END是必要的,以确保后续的diff文本不受扩展。