summaryrefslogtreecommitdiff
path: root/yarns/lib.py
blob: b7df3a73474e4f39583d3462433b1b5775b134b1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import errno
import os
import time

import cliapp

import yarnutils

datadir = os.environ['DATADIR']
srcdir = os.environ['SRCDIR']

vars = yarnutils.Variables(datadir)


MAX_CAT_TIME = 5 # seconds
def cat(filename):
    start = time.time()
    while time.time() - start < MAX_CAT_TIME:
        try:
            with open(filename) as f:
                data = f.read()
                if len(data) == 0:
                    continue
                return data
        except (IOError, OSError) as e:
            if e.errno == errno.ENOENT:
                continue
            raise
    raise Exception("cat took more then %s seconds" % MAX_CAT_TIME)