#!/usr/bin/env python3
# pylint: disable=unexpected-keyword-arg
"""
   Show missing assets for a directory
"""
import sys
from os.path import realpath, relpath, dirname, basename
try:
    import mkcmdlinegame
except ImportError:
    from os.path import join
    sys.path.append(
        join(dirname(dirname(realpath(__file__))), 'lib', 'python3')
    )
    import mkcmdlinegame

USAGE = """usage: %s dir

Show missing assets in the directory""" % basename(sys.argv[0])


def _get_assets_missing(curdir, lvl=0):
    assets = mkcmdlinegame.assets.Assets()
    assets.detect(curdir)
    refs = [ref for ref in mkcmdlinegame.jspart.get_assets_references(curdir)
            if not mkcmdlinegame.utils.onlyfiles(curdir, prefix=ref)]
    ret = [
        '%s : ' % relpath(curdir) +
        ' '.join(['missing'] + refs)
    ] if refs else []

    for room in [r
                 for r in mkcmdlinegame.utils.onlydirs(curdir)
                 if mkcmdlinegame.build_params.po_perimeter(r)]:
        ret += _get_assets_missing(room, lvl+1)

    return ret


if __name__ == '__main__':
    if len(sys.argv) < 2 or sys.argv[1] in ('-h', '--help'):
        print(USAGE)
        exit(1)

    for msg in _get_assets_missing(realpath(sys.argv[1])):
        print(msg)
