Как я могу добавить код, который всегда выполняется Waf перед выходом?
Я хочу, чтобы Waf генерировал звуковой сигнал, когда он заканчивает выполнение любой команды, которая заняла более 10 секунд.
Я не знаю, как добавить это и обеспечить выполнение кода при выходе из Waf.
Это должно выполняться для любой команды Waf, а не только для сборки.
Я проверил книгу Ваф, но не смог найти никаких указаний о том, как мне это сделать.
1 ответ
В вашем wscript
модуль, вы можете использовать atexit стандартной библиотеки Python для регистрации вызываемых объектов, которые вы хотите вызывать при выходе из процесса. Например:
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 - "добавить код, который всегда выполняется при выходе".