#!/usr/bin/python3

import os
import sys
import re
import glob
import time
import fnmatch


def should_skip(path, skip):
    for g in skip.split(' '):
        if fnmatch.fnmatch(path, g):
            return True
    return False


def wcl(path):
    return sum(1 for line in open(path, 'rb'))

# read parameters
prefix = os.getenv('PREFIX')
pathlist = os.getenv('PATHLIST', '/var/log/*')
skip = os.getenv('SKIP', '')
recursive = bool(int(os.getenv('RECURSIVE', '1')))
missing_ok = os.getenv('MISSING_OK', '')

nfiles = 0
filename = None

n_ok = 0

status = 'OK'
details = ''

reported = list()

for path in pathlist.split(' '):
    for curpath in glob.glob(path, recursive=recursive):

        if not os.path.isfile(curpath):
            continue
        if should_skip(curpath, skip):
            continue

        basename = os.path.basename(curpath)
        lines = wcl(curpath)

        print("NAME: {}{}".format(prefix, basename))
        print("TAGS: linecount")
        print("METHOD: numerical|minlim=0")
        print("DETAILS: {}".format("{} lines".format(lines)))
        print("STATUS: {}".format(lines))
        print()
        reported.append(curpath)

for path in missing_ok.split(' '):
    if path and not path in reported:
        # simulate zero

        basename = os.path.basename(path)
        lines = 0

        print("NAME: {}{}".format(prefix, basename))
        print("TAGS: linecount")
        print("METHOD: numerical|minlim=0")
        print("DETAILS: {}".format("simulated 0 lines (file does not exists)"))
        print("STATUS: {}".format(lines))
        print()
        reported.append(path)
