问题描述
我对 SCONS 上的构建过程有一个简单但不明显的要求。
我需要输入以下命令:
scons release [version]
预期结果
这应该做的是:
- 激活名为 release 的目标。
- 捕获在发布参数之后不久传递的参数。
- 作为目标的一部分,执行一个函数。如果发布 targed 后传递的参数有效,则调用另一个 targed。
- 如果无效,则中断工作流程并显示错误消息。
问题
我不知道如何设置
我目前的假设是:
- 使用两个操作创建自定义构建器。
- 第一个动作应该是一个 Python 函数,如果它的逻辑如此决定,它可以以某种方式停止进程。
- 第二个操作应该是调用默认构建器,因为如果第一个操作决定可以继续,则应该执行默认构建器。
- 创建一个指向这个名为 release 的自定义构建器的目标。
我需要做的是创建一个工作流,其中一些逻辑作为目标的一部分执行,并决定是否应该执行另一个逻辑。
但我不知道我的想法是否可行,而且我错过了一些我不知道从哪里获得的知识:
- “发布”目标不是输入文件。相反,它是执行由不同操作组成的工作流的触发器。我如何告诉 SCONS“release”参数不是文件?
- 如何捕获在“release”参数之后输入的下一个参数?这是发布号,“发布”目标应使用它来验证内容。 Pseldocode 将是:
def releaseTarget(wantedRelease):
if wantedTarget == "":
interruptHere()
我想知道我应该从哪里开始在 scons 上寻找这种功能。