3

我想让Waf在完成任何花费超过 10 秒的命令的执行时发出哔声。

我不知道如何添加它并确保代码在 Waf 退出时执行。

这应该适用于任何 Waf 命令,而不仅仅是构建。

我检查了Waf 书,但找不到任何关于我应该如何执行此操作的指示。

4

1 回答 1

4

在您的wscript模块中,您可以使用 Python 标准库的atexit来注册您希望在进程退出时调用的可调用对象。例如:

import atexit
import time

class MayBeep(object):
  def __init__(self, deadline=10.0):
    self.deadline = time.time() + deadline
  def __call__(self):
    if time.time() > self.deadline():
      print '\7'

atexit.register(MayBeep())

... rest of your wscript module ...

当然,您可能会使用比print '\7'哔哔声更好的东西(一直到成熟的多媒体盛会,取决于您导入和使用的其他 Python 扩展),但是这段代码回答了 Q 的标题——“添加总是在出口”。

于 2010-03-26T15:10:39.573 回答