#!python

from itertools import imap
import logging
from optparse import OptionParser
import os.path
import sys

from tilecloud import BoundingPyramid, TileStore, consume
from tilecloud.filter.logger import Logger
from tilecloud.store.boundingpyramid import BoundingPyramidTileStore


def main(argv):
    logger = logging.getLogger(os.path.basename(argv[0]))
    option_parser = OptionParser()
    option_parser.add_option('-b', '--bounding-pyramid',
                             metavar='BOUNDING-PYRAMID')
    option_parser.add_option('-v', '--verbose', action='store_true')
    options, args = option_parser.parse_args(argv[1:])
    if options.verbose:
        logging.basicConfig(level=logging.INFO)
    if options.bounding_pyramid:
        bounding_pyramid = \
            BoundingPyramid.from_string(options.bounding_pyramid)
    else:
        bounding_pyramid = None
    for arg in args:
        tilestore = TileStore.load(arg)
        if bounding_pyramid:
            tilestream = BoundingPyramidTileStore(bounding_pyramid).list()
        else:
            tilestream = tilestore.list()
        tilestream = tilestore.delete(tilestream)
        if options.verbose:
            tilestream = imap(Logger(logger, logging.INFO, '%(tilecoord)s'), tilestream)
        consume(tilestream, None)


if __name__ == '__main__':
    sys.exit(main(sys.argv))
