10秒以上かかったコマンドの実行が終了したときにWafにビープ音を鳴らさせたいです。
これを追加して、Wafが終了したときにコードが実行されることを保証する方法がわかりません。
これは、ビルドだけでなく、すべてのWafコマンドに対して実行する必要があります。
Wafの本を確認しましたが、これをどのように行うべきかについての指示が見つかりませんでした。
モジュールでは、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のタイトルに答えます-「常に実行されるコードを追加する出口"。