sapling/tests/waitforfile.py
Tony Tung c89f8dcf7e [fastmanifest] add the ability for waitforfile.py to wait for a file to materialize
Summary: --created is the opposite of --deleted.

Test Plan: meh.  used in later diff.

Reviewers: lcharignon, mjpieters

Reviewed By: mjpieters

Subscribers: mitrandir, mjpieters

Differential Revision: https://phabricator.intern.facebook.com/D3478780

Signature: t1:3478780:1466759469:47a3af68df2c8d550aa654f135d4f0fcf6df7851
2016-06-24 16:17:18 -07:00

38 lines
1.2 KiB
Python
Executable File

#!/usr/bin/env python
from optparse import OptionParser
import os
import sys
import time
if __name__ == '__main__':
parser = OptionParser()
parser.add_option('--created', dest='created',
type='string', default=[],
action='append',
help='wait for <FILE> to be created', metavar='FILE')
parser.add_option('--deleted', dest='deleted',
type='string', default=[],
action='append',
help='wait for <FILE> to be deleted', metavar='FILE')
parser.add_option('--sleep-interval-ms', dest='sleep_interval_ms',
type='int', default=100,
help='time in MS to sleep between checks')
parser.add_option('--max-time', dest='max_time',
type='int',
help='maximum time in seconds to wait for all the files to '
'reach the desired state')
(options, args) = parser.parse_args()
start = time.time()
while options.max_time is None or time.time() < start + options.max_time:
if (not all(os.access(f, os.F_OK) for f in options.created) or
any(os.access(f, os.F_OK) for f in options.deleted)):
time.sleep(options.sleep_interval_ms / 1000.0)
continue
sys.exit(0)
sys.exit(1)