#!/usr/bin/env python
import argparse
import logging
import os
from black.n.white.main import BlackNWhite


class readable_dir(argparse.Action):
    def __call__(self, parser, namespace, values, option_string=None):
        prospective_dir = values
        if not os.path.isdir(prospective_dir):
            raise argparse.ArgumentTypeError("readable_dir:{0} is not a valid path".format(prospective_dir))
        if os.access(prospective_dir, os.R_OK):
            setattr(namespace, self.dest, prospective_dir)
        else:
            raise argparse.ArgumentTypeError("readable_dir:{0} is not a readable dir".format(prospective_dir))


__author__ = 'gautam'
logging.getLogger().setLevel(logging.INFO)

if __name__ == "__main__":
    parser = argparse.ArgumentParser(description="BlacknWhite Static site generator")
    parser.add_argument("base_directory", help="Directory where the blog posts reside",action = readable_dir)
    parsed_args = parser.parse_args()
    black_n_white = BlackNWhite(base_directory=os.path.abspath(parsed_args.base_directory))
    black_n_white.process_posts()
