#!/usr/bin/env python
from __future__ import absolute_import
from __future__ import print_function
from lib.css_parser import parse, CssParserException
import os
import sys
import glob

try:
    import lister
    from typing import cast, Callable, Dict, Iterable, List
except ImportError as e:
    print("ImportError: {}".format(e))
    print("You need to run the Zulip linters inside a Zulip dev environment.")
    print("If you are using Vagrant, you can `vagrant ssh` to enter the Vagrant guest.")
    sys.exit(1)

def validate(fn):
    # type: (str) -> None
    text = open(fn).read()
    section_list = parse(text)
    if text != section_list.text():
        print('BOO! %s broken' % (fn,))
        open('foo.txt', 'w').write(section_list.text())
        os.system('diff %s foo.txt' % (fn,))
        sys.exit(1)

def check_our_files():
    # type: () -> None
    fns = glob.glob('static/styles/*.css')
    for fn in fns:
        try:
            validate(fn)
        except CssParserException as e:
            print('CssParserException raised while parsing file %s' % (fn,))
            print(e)
            sys.exit(1)

if __name__ == '__main__':
    check_our_files()
